我有一个调用2个子测试方法的测试方法。子方法都是从XML文件驱动的数据。如果我运行每个子方法,它们运行良好且成功。但是,当我运行Main Test Method(两个子方法的调用者)时,它会将TestContext.DataConnection和TestContext.DataRow视为null。
getActivity().startActivity(...);
如果我全部运行,则2个方法通过,1个失败。如果我单独运行,SaveData_Json_LocalStorage不通过,总是将TestContext.DataRow作为null。可以在里面调用多个方法吗?编写链式测试用例的最佳方法是什么。
答案 0 :(得分:2)
只有在必须拥有不可重新创建的数据时才能进行链接。否则,使每个测试成为一个独特的测试。
从XML文件驱动的数据。
考虑将只读 Xml放入一个属性中,该属性在ClassInitialization
方法中的测试之前运行一次。然后测试各个操作,然后进行“主”操作,每个操作作为一个单独的可测试单元。
public static XDocument Xml { get; set; }
[DeploymentItem("input.xml")]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML",
"input.xml",
"User",
DataAccessMethod.Sequential)]
[ClassInitialize()]
public static void ClassInit(TestContext context)
{ // This is done only once and used by other tests.
Xml = ...
Assert.IsTrue(Xml.Node ... );
}
否则,根据正在执行的测试或者是否来自特定呼叫来研究数据,shim
怎么样?请参阅我的文章Shim Saves The Day in A Tricky Unit Test Situation。