我正在尝试编写单元测试,以确保方法的结果基于静态变量的不同值是正确的。
这是一个简单的例子:
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中的单元测试同时进行,因此测试失败的可能性。这是真的?如何编写测试以一次运行一个?
答案 0 :(得分: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());
}
}