-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Test] Implementar teste na API para o /schedule #32
Comments
Descreva a feature em detalhes Testes de unidade executam o código de forma controlada com o intuito de comparar uma saída esperada a atual. O estado do sistema é ditado anteriormente para que possa se concentrar apenas na funcionalidade sob teste. Isso significa que cada teste possui uma descrição, anterior à execução das funções testadas, do que é necessário para que a situação investigada ocorra. O controle do estado do sistema ocorre pelo uso de mocks proporcionados pela ferramenta de teste. Necessidade da feature: A implementação de testes proporciona maior confiabilidade a um código. Estressar uma funcionalidade através deles oferece debug codificado. Além disso, se bem escrito, serve como uma documentação em código da funcionalidade, já que cada possibilidade de execução deve ser explorada e verificada. Os testes feitos nessa funcionalidade devem verificar a corretude da implementação através do estresse de diferentes saídas proporcionadas por ela. Dito isso, cada teste confirmará o comportamento esperado sob determinadas condições, corroborando com o objetivo geral dos testes. Como ela pode ser implementada: Uma ferramenta simples e poderosa para a implementação de testes é o pytest. Além disso, uma estratégia de testes que funciona muito bem é a GIVEN-WHEN-THEN. Pytest oferece um padrão para mocks, porém, os mocks do unittest são mais poderosos e simples de serem usados O pytest será a coluna vertebral do testes, os mocks servirão para controlar o estado do sistema durante o teste. Note que cada teste possui três fases: Given (dado que): é o preparo do sistema, nessa parte, é instanciado tudo o que for necessário para que o estado de interesse aconteça When (quando ___ acontece): é a execução da função de teste, aqui é onde será extraído o nosso "actual" ou saída verdadeira da funcionalidade. Then (então ____ são obtidos): é a parte de comparação do teste, nessa fase verificamos se a saída da função estressada corresponde com o esperado dela. É de extrema importância que essa parte possua único e exclusivamente comparações, artifícios do python como all e any são recomendados para comparações em conjuntos. Contexto adicional: Um diretório "tests" exclusivo para testes deve ser criado, juntamente com o padrão de que todo módulo de teste, bem como as funções de teste, comecem com o nome "test". |
Ótima documentação de issue! |
Descreva a feature em detalhes
Necessidade da feature:
Como ela pode ser implementada:
Contexto adicional:
The text was updated successfully, but these errors were encountered: