No aquivo de teste "add_test.py" onde você utiliza o faker pra gerar os dois número e depois somar. Não seria errado utilizar o resultado de uma segunda operação como expected output? Não deveriamos já dar o valor que esperamos, pois nesse caso inserimos uma operação ao invés de um valor esperado.
Como a lógica dentro do método é uma operação, é exatamente a operação que eu queria testar de forma totalmente aleatória. Logo, caso eu passasse o valor esperado, eu estaria abrangendo somente um caso dentre N casos (famoso pensamento: será que a operação funciona pra N casos diferentes?) Mesmo assim, acaba sendo interpretativo. Você pode fazer os seus testes de acordo com o contexto que achar mais adequado
Preciso de uma explicação seria possível ? Um exemplo de como eu faço dois testes na mesma função,mas uma com OK e outra dando erro e retornando um raise .. como ficaria isso no pytest ? como seria mostrado ali no retorno do pytest? Qdo é um teste de OK ... fica verdinho , mas qdo testo um erro .. por mais que trato com o raise com a mensagem que quero fica feio com linhas de erros e não somente a mensagem do raise ! tem como ?
Existem vários jeitos pra isso. Mas o mais simples é vc colocando a função dentro de um try-except. Então o erro faria vc ir pro catch e lá vc faz a sua validação unitária. Tenho um exemplo no github:github.com/programadorLhama/Request_Api_Project/blob/master/src/infra/swapi_api_consumer_test.py Veja que o primeiro teste é ok, já o segundo é com erro
@@ProgramadorLhama Na verdade faço assim : Na função faço minha comparação def verificar_maior(num): if num > 1: return = num else: raise RuntimeError("@ não é maior ") e no meu teste faço assim: def teste_verificar_maior(): atual = verificar_maior(2) expected = 2 assert atual == expected teste de erro: def test_verificar_maior_erro(): with pytest.raises(RuntimeError): verificar_maior(1) Desculpa o exemplo "tosco" , mas não sei se ficou claro ! pq ai qdo rodo o pytest o teste OK fica verdinho mas o de erro ele traz o raises porem fica feio aparecendo e não verdinho ... desculpa mas estou bem no inicio de entender esses testes.
try: verificar_maior(0) assert True is False Except: assert True is True Dessa forma, se der erro, ele cai no except. Caso contrário cai no assert errado do try. Vc tbm pode fazer Except RuntimeError pra pegar o erro em específico
Cara esse material seu é um legado. Nunca encontrei no RUclips material como esse.
Aquele conteúdo que separa os Homens dos meninos. Muito bom.
Vlw mesmo pela avaliação! Sucesso pra ti!
Excelente. Obrigado.
Seu canal é um verdadeiro curso de python
Parabéns Rafael! Conteúdo de primeiríssima qualidade!
Muito obrigado!
Otimo video, não conhecia a biblioteca Faker, achei bem legar valeu meu mano.
Seu canal está muito bom! Ótima explicação. Parabéns (:
Excelente explicação!
Ótimo conteúdo!! Valeu :D
Tamo junto!
A blioteca faker não conhecia obrigadoo pelo conhecimento
Biblioteca muito dinâmica, ajuda muito até em data science. Sucesso aí!
Fácil de entender contigo explicando, difícil de fazer/aplicar.
Aqui no canal tem algumas playlists que realizo projetos com esses modelos. Depois da uma olhada lá! :)
Faz vídeos sobre fastApi
VC usa Ubuntu? pq fica a parte de apps ou a line da interface do Ubunto fica em cima da GUI do Vscode?
Ihama que tema é esse que vc está usando?
No aquivo de teste "add_test.py" onde você utiliza o faker pra gerar os dois número e depois somar. Não seria errado utilizar o resultado de uma segunda operação como expected output? Não deveriamos já dar o valor que esperamos, pois nesse caso inserimos uma operação ao invés de um valor esperado.
Como a lógica dentro do método é uma operação, é exatamente a operação que eu queria testar de forma totalmente aleatória. Logo, caso eu passasse o valor esperado, eu estaria abrangendo somente um caso dentre N casos (famoso pensamento: será que a operação funciona pra N casos diferentes?) Mesmo assim, acaba sendo interpretativo. Você pode fazer os seus testes de acordo com o contexto que achar mais adequado
Preciso de uma explicação seria possível ?
Um exemplo de como eu faço dois testes na mesma função,mas uma com OK e outra dando erro e retornando um raise .. como ficaria isso no pytest ?
como seria mostrado ali no retorno do pytest?
Qdo é um teste de OK ... fica verdinho , mas qdo testo um erro .. por mais que trato com o raise com a mensagem que quero fica feio com linhas de erros e não somente a mensagem do raise !
tem como ?
Existem vários jeitos pra isso. Mas o mais simples é vc colocando a função dentro de um try-except. Então o erro faria vc ir pro catch e lá vc faz a sua validação unitária.
Tenho um exemplo no github:github.com/programadorLhama/Request_Api_Project/blob/master/src/infra/swapi_api_consumer_test.py
Veja que o primeiro teste é ok, já o segundo é com erro
@@ProgramadorLhama Bacana , mas ainda não consigo ler o código muito bem , rs !
Tenta somente colocar a função com erro dentro de um try-except. Aí vc consegue capturar o erro
@@ProgramadorLhama Na verdade faço assim :
Na função faço minha comparação
def verificar_maior(num):
if num > 1:
return = num
else:
raise RuntimeError("@ não é maior ")
e no meu teste faço assim:
def teste_verificar_maior():
atual = verificar_maior(2)
expected = 2
assert atual == expected
teste de erro:
def test_verificar_maior_erro():
with pytest.raises(RuntimeError):
verificar_maior(1)
Desculpa o exemplo "tosco" , mas não sei se ficou claro !
pq ai qdo rodo o pytest o teste OK fica verdinho mas o de erro ele traz o raises porem fica feio aparecendo e não verdinho ... desculpa mas estou bem no inicio de entender esses testes.
try:
verificar_maior(0)
assert True is False
Except:
assert True is True
Dessa forma, se der erro, ele cai no except. Caso contrário cai no assert errado do try.
Vc tbm pode fazer Except RuntimeError pra pegar o erro em específico