关于集成测试,我遇到了以下问题。
代码(使用其他一些函数很简单)。我在AddItem
函数上设置了断点。
[TestInitialize]
public void MyTestInitialize() {
Assert.IsTrue( AddItem() );
}
[TestCleanup]
public void MyTestCleanup() {
Assert.IsTrue( RemoveItem() );
}
[TestMethod]
public void ListTest(){
AClass test = new AClass();
Assert.IsTrue(test.List().Count > 0);
}
private bool AddItem() {
AClass obj = new AClass();
Assert.IsTrue(obj.Add("test", "123")); //no duplicate will be allowed ! (return false if duplicate found)
obj.Files = ConstructFiles();
...
...
}
private string[] ConstructFiles(){
return Directory.GetFiles(@"/folder/files", "*.doc");
//when execute the above code then the breakpoint from `AddItem` is reached !!!
}
测试ListTest
时会自动调用AddItem
(因为TestInitialize
属性)。
第一次调用没问题,但是当这个函数(AddItem
)调用另一个函数时ConstructFiles
,会到达断点AddItem
并再次执行该函数。
为什么 ?
当然,我还有另一个使用TestMethod
属性的测试,但是第一次调用时有些不清楚AddItem
,它调用ConstructFiles
.