所以,我不完全确定这是真的:
[TestClass]
public class UnitTest1
{
private int i = 0;
[TestMethod]
public void TestMethod1()
{
Thread.Sleep(5000);
Assert.IsTrue(i == 10);
}
[TestMethod]
public void TestMethod2() {
i = 10;
}
}
从测试结果来看,好像不是,但我想确定的是,如果我在测试方法上定义了一个全局变量,其他测试方法就无法读取它。
另外,我是否必须定义
[TestCleanup]
public void Test_Cleanup() {
engine = null;
}
因为这个
[TestInitialize]
public void Test_Initialize()
{
var pieceGeneratorMock = new Mock<IPieceGenerator>();
pieceGeneratorMock.Setup(pg => pg.Generate())
.Returns(new Piece(Color.Red));
IPieceGenerator pieceGenerator = pieceGeneratorMock.Object;
Size size = new Size(4, 4);
BackgroundBoard backgroundBoard = new BackgroundBoard(size);
PieceBoard pieceBoard = new PieceBoard(size);
engine = new Engine(pieceGenerator, backgroundBoard, pieceBoard);
}
?
最佳答案
至少在 JUnit 中,每个测试方法都是在 TestCase 的一个单独实例上调用的。您可以通过在每个测试* 方法中输出/记录 this
的身份散列来自行验证这一点。
关于c# - 单元测试方法独立性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3417408/