Supponiamo di testare una classe con un framework xUnit-like, quindi viene creata una classe di test per la classe under-test. Ora, quanto dovrebbe essere testato dai singoli metodi di test?
Ci dovrebbe essere una mappatura uno-a-uno tra metodi sotto test e metodi di test:
class TestMath {
testSqrt() {
assertEquals(Math.sqrt(4), 2);
assertException(Math.sqrt(-2));
}
}
O è meglio avere un metodo di prova per "scenario":
class TestMath {
testSqrtOfPositiveNum() {
assertEquals(Math.sqrt(4), 2);
}
testSqrtOfNegativeNum() {
assertException(Math.sqrt(-2));
}
}
Quale è meglio e quali sono i pro e i contro di entrambi i metodi?