在VS2010中使用MS Test ClassInitialize()和TestInitialize()而不是NUnit

Jen*_*r S 25 nunit mstest

我已经在VS2008上使用了NUnit,现在我正在适应VS2010上的MSTest.我曾经能够在TestSetup()中创建一个对象并在TestCleanup()中处理它,并且每次在NUnit中运行测试方法时都会创建对象,从而阻止我在每个测试方法中复制代码.

这对MSTest来说不可能吗?我发现使用ClassInitialize和ClassCleanup以及TestInitialize和TestCleanup属性的示例仅显示如何写入控制台.没有显示这些属性的更详细用法.

Tom*_*ers 39

这是一个使用TestInitialize和TestCleanup的简单示例.

[TestClass]
public class UnitTest1
{
    private NorthwindEntities context;

    [TestInitialize]
    public void TestInitialize()
    {
        this.context = new NorthwindEntities();
    }

    [TestMethod]
    public void TestMethod1()
    {
        Assert.AreEqual(92, this.context.Customers.Count());
    }

    [TestCleanup]
    public void TestCleanup()
    {
        this.context.Dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,TestInitialize和TestCleanup方法必须标记为**public**,如图所示. (6认同)