0

假设我有一个代码模块,它接受可变数量的DataRows

Public sub Process(Dt As DataTable)
End Sub

我想将一个或多个测试DataRows传递给我的 MbUnit 测试模块:

测试 1

DataRow 1: Green, 23
DataRow 2: Green, 24

测试 2

DataRow 1: Green, 23
DataRow 2: Green, 24
DataRow 3: Blue, 44
DataRow 4: Red, 55

如何在 MbUnit 中使用这些测试设置 XML 数据文件?

问题2:

假设我想传递有关测试数据的元数据?例如“颜色名称”或“距离”。如何将此元数据添加到 XML 文件中?

谢谢,

埃德

4

1 回答 1

0

Gallio Wiki中有一些文档解释了如何将 XML 数据源用于测试参数以及如何将它们与元数据绑定。但不幸的是,内置的 XML 数据源属性没有那么灵活。

我想最好的解决方案是创建自己的数据工厂。可能是这样的:

[TestFixture]
public class MyFixture
{
  [Test, Factory("GetSampleDataTables")]
  public void MyTest(DataTable dataTable)
  {
     var foo = new Foo();
     foo.Process(dataTable);
     // Make assertions...
  }

  public static IEnumerable<object> GetSampleDataTables()
  {
    foreach (...) // Read your XML data file...
    {
      var sampleDataTable = new DataTable();
      // Populate your sample data table from XML...
      yield return sampleDataTable;
    }
  }
}
于 2011-05-23T19:35:09.163 回答