单元测试TestContext多次调用

时间:2015-05-18 20:21:37

标签: c# unit-testing testcontext

我有一个调用2个子测试方法的测试方法。子方法都是从XML文件驱动的数据。如果我运行每个子方法,它们运行良好且成功。但是,当我运行Main Test Method(两个子方法的调用者)时,它会将TestContext.DataConnection和TestContext.DataRow视为null。

getActivity().startActivity(...);

如果我全部运行,则2个方法通过,1个失败。如果我单独运行,SaveData_Json_LocalStorage不通过,总是将TestContext.DataRow作为null。可以在里面调用多个方法吗?编写链式测试用例的最佳方法是什么。

1 个答案:

答案 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