Sto provando ad usare TestCaseSource
in NUnit per eseguire test multipli con uno dei parametri essendo un arrayTestCase nome visualizzato in NUnit Quando si utilizzano matrici o Generics
private static readonly object[] ReturnChopCases =
{
new TestCaseData(3, new List<int> {}).Returns(-1),
new TestCaseData(3, new List<int> {1}).Returns(1),
new TestCaseData(1, new List<int> {1,2}).Returns(1),
};
[TestCaseSource("ReturnChopCases")]
public int test_chop(int SearchNumber, int[] SearchArray)
{
return Chopper.Chop(3, SearchArray);
}
Il problema è il nome visualizzato nella test runner (Sto usando il NUnit Test Adapter) è abbastanza inutile, tutti mostrano come test_chop(0,System.Int32[])
o se si utilizza un List
quindi test_chop(0,System.Collections.Generic.List`1[System.Int32])
.
Come mantenere un test abbastanza leggibile e fornire un nome di prova utile al test nel corridore di prova? Ho provato alcune cose ma ho ancora il nome di cui sopra.
È possibile nominare i test in modo esplicito se si virano su '.SetName (" il tuo nome ")'. Forse stai cercando qualcosa di più automatico. –
Sì, ero davvero sorpreso che non facesse qualcosa di meglio con gli array in particolare. '.SetName (" ")' sembra l'opzione migliore o potrei scrivere un metodo per passare un nome per questi test. –