#unit-testing #mbunit #gallio
#модульное тестирование #mbunit #gallio
Вопрос:
Предположим, у меня есть модуль кода, который принимает переменное количество потоков данных:
Public sub Process(Dt As DataTable)
End Sub
Я хочу передать один или несколько тестовых потоков данных в мой тестовый модуль 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
Как бы мне настроить XML-файл данных с этими тестами в MbUnit?
Вопрос 2:
Предположим, я хочу передать метаданные о тестовых данных? Например, «Название цвета» или «Расстояние». Как бы мне добавить эти метаданные в XML-файл?
Спасибо,
Ред
Ответ №1:
В 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;
}
}
}