问题描述
|
假设我有一个代码模块,它接受可变数量的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;
}
}
}