[TestFixture]
public class SampleFixture
{
[Column("123", "456")]
private string parameter; // Causes the fixture to be run once for each value.
public IEnumerable<string> GetData()
{
yield return "abc" + parameter;
yield return "def" + parameter;
yield return "ghi" + parameter;
}
[Test, Factory("GetData")]
public void MyDataDrivenTest(string text)
{
TestLog.WriteLine(text);
}
}
Sie könnten die Artikel über data-driven tests im Gallio wiki lesen möchten. Sie finden viele Beispiele zur Verwendung von [Row]
, [Column]
und anderen praktischen Funktionen zum Erstellen datengesteuerter Tests mit MbUnit.
UPDATE: Im obigen Beispiel habe ich die Daten von der Fabrik mit dem externen Parameter nur verkettet. Daher wird der Test 6 Mal ausgeführt ("abc123", "def123", "ghi123", "abc456", "def456" und "ghi456"). Aber Sie könnten den Parameter einfach auf andere Weise verwenden; wie zum Beispiel das gesamte Verhalten von GetData
zu ändern.
Danke; Aber meine Frage ist, wie Sie in Ihrem Beispiel eine Zeichenfolge an die GetData-Methode übergeben, damit sie bestimmen kann, was als Testdaten zurückgegeben werden soll. – tgiphil
Ich bin mir nicht sicher, genau zu verstehen. GetData kann zurückgeben, was Sie wollen, und nicht notwendigerweise eine Liste von Rendite-Renditen. Es kann beispielsweise Daten aus einer externen Datenquelle wie einem Repository, einem benutzerdefinierten Generator oder einer beliebigen Art von Datenfactory abrufen. Vielleicht könnten Sie ein Beispiel dafür geben, was Sie erreichen möchten. Woher kommt dieser String-Parameter? Benutzereingabe, Datenbank, Konfigurationsdateien? –
Ich möchte eine Methode aufrufen, die eine Zeichenfolge akzeptiert und IEnumerable