Utilizzo di TDD per la prima volta nella mia vita di oggi. Sto usando nUnit.TDD nUnità di più asserzioni per un metodo
Ho un metodo, in cui posso inserire più input diversi e verificare se il risultato funziona.
Ho letto che più affermazioni in un test non è un problema, e davvero non voglio scrivere un nuovo test per ogni input.
Esempio con molteplici afferma:
[TestFixture]
public class TestClass
{
public Program test;
[SetUp]
public void Init()
{
test = new Program();
}
[Test]
public void Parse_SimpleValues_Calculated()
{
Assert.AreEqual(25, test.ParseCalculationString("5*5"));
Assert.AreEqual(125, test.ParseCalculationString("5*5*5"));
Assert.AreEqual(10, test.ParseCalculationString("5+5"));
Assert.AreEqual(15, test.ParseCalculationString("5+5+5"));
Assert.AreEqual(50, test.ParseCalculationString("5*5+5*5"));
Assert.AreEqual(3, test.ParseCalculationString("5-1*2"));
Assert.AreEqual(7, test.ParseCalculationString("7+1-1"));
}
}
Ma quando qualcosa non riesce, è molto difficile da leggere che asseriscono fallito, voglio dire, se si dispone di loro un sacco, è necessario passare attraverso tutti e trovare l'asserzione destra .
C'è un modo elegante per mostrare quale input è stato impostato se l'asserzione ha esito negativo, invece del risultato e del risultato previsto?
Grazie.
Secondo me, * dovresti * avere un test diverso per ogni caso di test. Il tuo test dovrebbe avere una ragione per fallire: hai apportato una modifica al codice che ha infranto il tuo caso di test. Cosa succede se si modifica una parte della logica di analisi in modo che le operazioni di aggiunta non riescano, ma la sottrazione è corretta? Se hai un caso di test, fallirà sia per l'addizione che per la sottrazione. –