Para dar um exemplo um pouco artificial, digamos que eu queira testar se uma função retorna dois números e que o primeiro é menor que o segundo:
def test_length():
result = my_function()
assert len(result) == 2
def test_order()
a, b = my_function()
assert a < b
Aqui, se test_lengthfalhar, test_ordertambém falhará. É uma prática recomendada escrever test_lengthou pular?
EDIT: observe que, nessa situação, os dois testes são independentes em sua maioria, cada um pode ser executado isoladamente ou em ordem inversa, isso não importa. Portanto, nenhuma dessas perguntas anteriores
- Como devo testar a funcionalidade de uma função que usa outras funções nela?
- Preciso de teste de unidade se já tenho teste de integração?
- Como estruturar testes onde um teste é a instalação de outro teste?
- Como gerenciar a dependência de sucesso entre testes de unidade
é uma duplicata da acima.
Achama Be retorna o mesmo resultado, deve testar ambos Ae B". Isso se refere mais à sobreposição dos testes, e não às funções sob teste. (Embora seja confuso como eles são nomeados atualmente).
lambda: type('', (), {'__len__': lambda self: 2})()passará a primeira, mas não a segunda.