我遇到了有关集成测试的以下问题。
代码(使用其他一些函数很简单)。我已将断点放在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
时,有些内容不明确。