我在以下方式(使用相同的靜態變量)在同一個測試程序集中有N個MSTest測試類和方法。在每個MSTest測試方法開始時重置一個靜態變量
[TestClass]
public class TestClass1
{
[TestMethod]
public void TestMethod1A()
{
MyClass.StaticVariable = 0;
MyClass.StaticVariable = MyClass.StaticVariable + 1;
Assert.AreEqual(1, MyClass.StaticVariable)
}
[TestMethod]
public void TestMethod1B()
{
MyClass.StaticVariable = 0;
MyClass.StaticVariable = MyClass.StaticVariable + 1;
Assert.AreEqual(1, MyClass.StaticVariable)
}
}
[TestClass]
public class TestClass2
{
[TestMethod]
public void TestMethod2A()
{
MyClass.StaticVariable = 0;
MyClass.StaticVariable = MyClass.StaticVariable + 1;
Assert.AreEqual(1, MyClass.StaticVariable)
}
[TestMethod]
public void TestMethod2B()
{
MyClass.StaticVariable = 0;
MyClass.StaticVariable = MyClass.StaticVariable + 1;
Assert.AreEqual(1, MyClass.StaticVariable)
}
}
這些測試是否保證通過?我的觀點是MSTest是否會同步執行測試方法,始終允許MyClass.StaticVariable在被聲明之前初始化和增加一次?下列情況可以發生嗎?
1. TestMethod1A makes MyClass.StaticVariable 0
2. TestMethod2B increments MyClass.StaticVariable by 1
3. TestMethod1A increments MyClass.StaticVariable by 1 (making the value equal to 2)
4. TestMethod1A asserts (Fail!)
我不是對MSTest非常有經驗,但我使用NUnit相當多,而且我的經驗是NUnit將程序集中的所有測試排序(按字母順序排列),並同步通過所有測試。我猜想同樣如此MSTest –
如果是這樣的話,我會成爲一個快樂的露營者。我甚至不需要測試以某種順序運行,只需同步運行即可。 – Harindaka