我有一个函数可以为给定字符串参数的一系列单元测试生成变体。如何使用工厂属性(或一些替代方法),它需要额外的工厂方法的字符串参数?
我将 Gallio/mbUnit 用于自动化测试框架。
我有一个函数可以为给定字符串参数的一系列单元测试生成变体。如何使用工厂属性(或一些替代方法),它需要额外的工厂方法的字符串参数?
我将 Gallio/mbUnit 用于自动化测试框架。
[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);
}
}
您可能想阅读Gallio wiki中有关数据驱动测试的文章。您会发现许多示例说明如何使用、和其他方便的功能来使用 MbUnit 创建数据驱动的测试。[Row]
[Column]
更新:在上面的示例中,我刚刚将工厂的数据与外部参数连接起来。因此测试将运行 6 次(“abc123”、“def123”、“ghi123”、“abc456”、“def456”和“ghi456”)。但是您可以以另一种方式使用该参数;比如修改整个行为GetData
。