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

问题描述

| 假设我有一个代码模块,它接受可变数量的DaTarows:
Public sub Process(Dt As DataTable)
End Sub
我想将一个或多个测试DaTarows传递给我的MbUnit测试模块: 测试1:
DaTarow 1: Green,23
DaTarow 2: Green,24
测试2:
DaTarow 1: Green,24
DaTarow 3: Blue,44
DaTarow 4: Red,55
如何在MbUnit中使用这些测试来设置XML数据文件? 问题2: 假设我要传递有关测试数据的元数据?例如\“颜色名称\”或\“距离\”。如何将这些元数据添加到XML文件? 谢谢, 埃德     

解决方法

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...