如何在MbUnit中以XML格式传递多个数据集

时间:2011-05-23 14:02:43

标签: unit-testing mbunit gallio

假设我有一个代码模块,它接受可变数量的 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文件中?

谢谢,

1 个答案:

答案 0 :(得分:0)

Gallio Wiki 中有一些文档解释了how to use an XML data source您的测试参数以及如何将它们与元数据绑定。但遗憾的是,内置的XML数据源属性并不那么灵活。

我想最好的解决方案是创建own data factory。这样的事情可能是:

[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;
    }
  }
}