Al investigar las mejores prácticas de pruebas unitarias para ayudar a elaborar pautas para mi organización, me he preguntado si es mejor o útil separar los accesorios de prueba (clases de prueba) o mantener todas las pruebas para una sola clase en un archivo.
Fwiw, me refiero a las "pruebas unitarias" en el sentido puro de que son pruebas de caja blanca dirigidas a una sola clase, una afirmación por prueba, todas las dependencias burladas, etc.
Un escenario de ejemplo es una clase (llámela Documento) que tiene dos métodos: CheckIn y CheckOut. Cada método implementa varias reglas, etc. que controlan su comportamiento. Siguiendo la regla de una afirmación por prueba, tendré varias pruebas para cada método. Puedo colocar todas las pruebas en una sola DocumentTestsclase con nombres como CheckInShouldThrowExceptionWhenUserIsUnauthorizedy CheckOutShouldThrowExceptionWhenUserIsUnauthorized.
O podría tener dos clases de prueba separadas: CheckInShouldy CheckOutShould. En este caso, mis nombres de prueba se acortarían, pero se organizarían para que todas las pruebas de un comportamiento (método) específico estén juntas.
Estoy seguro de que hay ventajas y desventajas para abordar y me pregunto si alguien ha seguido la ruta con varios archivos y, de ser así, ¿por qué? O, si ha optado por el enfoque de archivo único, ¿por qué cree que es mejor?
testResponseContainsSuccessTrue(), testResponseContainsMyData()y testResponseStatusCodeIsOk(). Como quieren que ellos en una sola testResponse()que tiene tres afirma: assertEquals(200, response.status), assertEquals({"data": "mydata"}, response.data)yassertEquals(true, response.success)