0

我正在尝试编写一个单元测试,以确保基于静态变量的不同值的方法结果是正确的。

这是一个简单的例子:

public void TestMethod1()
{
     Object1.StaticMember = 1
     Object2 test = new Object2();
     Assert.AreEqual("1", test.getStaticVal());
}

public void TestMethod2()
{
     Object1.StaticMember = 2
     Object2 test = new Object2();
     Assert.AreEqual("2", test.getStaticVal());
}

我被告知 VS2012 中的单元测试是同时执行的,因此测试可能会失败。这是真的?如何编写测试以一次运行一个?

4

1 回答 1

3

可能有一种更优雅的方法来做到这一点,但你总是可以使用这样的锁对象......

    private static Object LockObject = new object();

    public void TestMethod1()
    {
        lock(LockObject)
        {
            Object1.StaticMember = 1;
            Object2 test = new Object2();
            Assert.AreEqual("1", test.getStaticVal());
        }
    }

    public void TestMethod2()
    {
        lock (LockObject)
        {
            Object1.StaticMember = 2;
            Object2 test = new Object2();
            Assert.AreEqual("2", test.getStaticVal());
        }
    }
于 2013-06-06T21:57:31.557 回答