1

我有一个函数可以为给定字符串参数的一系列单元测试生成变体。如何使用工厂属性(或一些替代方法),它需要额外的工厂方法的字符串参数?

我将 Gallio/mbUnit 用于自动化测试框架。

4

1 回答 1

2
[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

于 2011-01-04T07:07:50.577 回答