Sto testando un metodo parametrizzato da due input e dipende da una strategia. Ecco cosa ho:
[TestCase(input_a1, input_b1, strategy1)]
[TestCase(input_a2, input_b1, strategy1)]
[TestCase(input_a3, input_b1, strategy1)]
[TestCase(input_a1, input_b2, strategy1)]
[TestCase(input_a2, input_b2, strategy1)]
[TestCase(input_a3, input_b2, strategy1)]
[TestCase(input_a1, input_b1, strategy2)]
[TestCase(input_a2, input_b1, strategy2)]
[TestCase(input_a3, input_b1, strategy2)]
[TestCase(input_a1, input_b2, strategy2)]
[TestCase(input_a2, input_b2, strategy2)]
[TestCase(input_a3, input_b2, strategy2)]
Il mio metodo di prova assomiglia a questo:
[TestCase(expected, input_a3, input_b2, strategy2)]
void TestMethod(Output expected, Input a, Input b, Strategy strategy)
{
var TestObject = new TestObject(strategy);
var actual = testObject.TestMethod(a, b);
// Assert expected == actual
}
Non è difficile immaginare come sono arrivato qui. Ho iniziato variando input_a
e mantenendo input_b
e strategy1
costante, terminando con 3 casi di test.
[TestCase(input_a1, input_b1, strategy1)]
[TestCase(input_a2, input_b1, strategy1)]
[TestCase(input_a3, input_b1, strategy1)]
Poi ho copiato quei casi di test e ho variato input_b
con le altre due costanti, moltiplicando i miei casi di test.
[TestCase(input_a1, input_b2, strategy1)]
[TestCase(input_a2, input_b2, strategy1)]
[TestCase(input_a3, input_b2, strategy1)]
Poi ho variato il strategy
, moltiplicando di nuovo i miei casi di test.
[TestCase(input_a1, input_b1, strategy2)]
[TestCase(input_a2, input_b1, strategy2)]
[TestCase(input_a3, input_b1, strategy2)]
[TestCase(input_a1, input_b2, strategy2)]
[TestCase(input_a2, input_b2, strategy2)]
[TestCase(input_a3, input_b2, strategy2)]
Ritengo che i miei casi di test stiano crescendo ad un ritmo allarmante. Ora ho bisogno di aggiungere un terzo Strategy
. Se continuo così, aggiungerei un'altra serie di casi di test. Se aggiungessi un altro input, input_c
, moltiplicherei i miei set di test case almeno di 2.
È troppo prolisso per testare ogni combinazione di input_a
, input_b
e strategy
?