Comment puis-je passer ssortingng[][]
tableaux de ssortingng[][]
à ValuesAtsortingbute?
J’ai:
public ssortingng[][] Array1 = new[] {new[] {"test1", "test2"}}; //... [Test, Sequential] public void SomeTest( [Values("val1", "val2", "val3")] ssortingng param1, [Values(Array1, Array2, Array3)] ssortingng[][] param2) { //... }
Et j’ai Cannot access non-static field "Array1" in static context
. Que je marque Array1
avec mot clé static
et que j’ai An atsortingbute argument must be a constant expression...
que je le marque avec mot clé en readonly
et j’ai toujours An atsortingbute argument must be a constant expression...
Est-il possible de passer plusieurs tableaux? (Sauf la ssortingng[][][]
laide ssortingng[][][]
et le passage des index param2
du array[][]
pertinent array[][]
dans le array[][][]
)
C’est possible. Mais vous devez utiliser TestCaseSourceAtsortingbute au lieu de Sequential
et Values
.
Voir un exemple:
object[][] testCases = new[] { // test case 1 new object[] { "val1", new[] { "test11", "test12" } }, // test case 2 new object[] { "val2", new[] { "test21", "test22" } }, // test case 3 new object[] { "val3", new[] { "test31", "test32", "test33", "test34" } } }; [Test] [TestCaseSource("testCases")] public void SomeTest(ssortingng param1, ssortingng[] param2) { ... }
Un autre avantage: les cas de test sont mieux organisés et peuvent être facilement réutilisés dans plusieurs tests.