| 

.NET C# Java Javascript Exception

1
Ich hab eine Testmethode. Die soll mehrfach mit verschiedenen Parametern aufgerufen werden. Muss ich dazu eine Unterroutine schreiben oder geht das einfacher.
News:
10.03.2011
Oreo 11 2
2 Antworten
2
Mit dem Attribut TestCaseSource kann man eine TestMethode erneut und mit immer neuen Argumenten aufrufen und testen.

Man definiert die Methode, welche die Parameter zurückgeben soll im TestCaseSource Attribut und die Methode muss ein Enumerable zurückgeben.

Folgendes Beispiel soll das verdeutlichen

[Test, TestCaseSource("UpdateOrganisationsPersonArgumentNullTestCases")]
public void UpdateOrganisationsPersonArgumentNull(OrganisationsPerson person)
{
try
{
OrganisationsPersonManager.UpdateOrganisationsPerson(person, true);
Assert.Fail();
}
catch (ArgumentNullException ex)
{
Assert.That(ex.ParamName.Equals("person"), "Der Wert darf nicht NULL sein");
}
}


public IEnumerable<TestCaseData> UpdateOrganisationsPersonArgumentNullTestCases()
{
/* null */
yield return new TestCaseData(null);

/* Ohne Instanz einer spezifizierten OrgaPerson */
yield return new TestCaseData(GetDummyOrganisationsPerson());

/* Ohne Instanz eines spezifizierten VertriebsPartner */
var person = GetDummyOrganisationsPerson();
person.VertriebsPartner = GetDummyVertriebsPartner();
yield return new TestCaseData(person);
}


Ein weiteres simples Beispiel findet man in der Doku von NUnit
10.03.2011
Mario Priebe 6,0k 3 9
1
Schau mal nach dem Stichwort "data-driven unit tests". Z.B. hier und hier.
10.03.2011
Matthias Hlawatsch 13,2k 4 9

Stelle deine Parameter-Frage jetzt!