Ao pesquisar as práticas recomendadas de teste de unidade para ajudar a elaborar diretrizes para minha organização, eu me deparei com a questão de saber se é melhor ou útil separar equipamentos de teste (classes de teste) ou manter todos os testes para uma única classe em um arquivo.
Fwiw, estou me referindo a "testes de unidade" no sentido puro de que são testes de caixa branca direcionados a uma única classe, uma asserção por teste, todas as dependências zombadas etc.
Um cenário de exemplo é uma classe (chamada Documento) que possui dois métodos: CheckIn e CheckOut. Cada método implementa várias regras, etc., que controlam seu comportamento. Seguindo a regra de uma asserção por teste, terei vários testes para cada método. Posso colocar todos os testes em uma única DocumentTestsclasse com nomes como CheckInShouldThrowExceptionWhenUserIsUnauthorizede CheckOutShouldThrowExceptionWhenUserIsUnauthorized.
Ou, eu poderia ter duas classes de teste separadas: CheckInShoulde CheckOutShould. Nesse caso, meus nomes de teste seriam reduzidos, mas eles seriam organizados para que todos os testes de um comportamento específico (método) estejam juntos.
Tenho certeza de que existem prós e contras em qualquer uma das abordagens e estou imaginando se alguém já seguiu o caminho com vários arquivos e, se sim, por quê? Ou, se você optou pela abordagem de arquivo único, por que acha que é melhor?
testResponseContainsSuccessTrue(), testResponseContainsMyData()e testResponseStatusCodeIsOk(). Você poderia tê-los em um único testResponse()que tem três afirma: assertEquals(200, response.status), assertEquals({"data": "mydata"}, response.data)eassertEquals(true, response.success)