Потратив всего несколько часов на поиск того, как это сделать (поскольку в данные встроено некоторое форматирование, поэтому я не могу использовать файл CSV), мне удалось понять, как использовать XML с MSTest.
Это небольшой образец. Надеюсь, это поможет.
Предположим, у вас есть простая библиотека классов:
public class GetStrings
{
public string RichardIII(string lookup)
{
string results;
switch(lookup)
{
case "winter":
{
results =
"Now is the winter of our discontent\nMade glorious summer by this sun of York;\nAnd all the clouds that lour'd upon our house\nIn the deep bosom of the ocean buried. ";
break;
}
case "horse":
{
results =
"KING RICHARD III \nA horse! a horse! my kingdom for a horse!\n\nCATESBY \n\"Withdraw, my lord; I'll help you to a horse.\"";
break;
}
default:
results = null;
break;
}
return results;
}
}
Итак, юнит-тест, который проверит часть этого метода, будет выглядеть так:
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\TestStrings.xml", "Test", DataAccessMethod.Sequential), DeploymentItem("GetStringsTest\\TestStrings.xml"), TestMethod]
public void RichardIIITest()
{
GetStrings target = new GetStrings();
string lookup = TestContext.DataRow["find"].ToString();
string expected = TestContext.DataRow["expect"].ToString();
if (expected == "(null)")
expected = null;
string actual = target.RichardIII(lookup);
Assert.AreEqual(expected, actual);
}
XML-файл TestStrings.xml выглядит следующим образом:
<TestStrings>
<Test find="winter" expect="Now is the winter of our discontent Made glorious summer by this sun of York; And all the clouds that lour'd upon our house In the deep bosom of the ocean buried. "/>
<Test find="horse" expect="KING RICHARD III A horse! a horse! my kingdom for a horse! CATESBY "Withdraw, my lord; I'll help you to a horse.""/>
<Test find="blah blah" expect="(null)"/>
</TestStrings>