0

关于集成测试,我遇到了以下问题。

代码(使用其他一些函数很简单)。我在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.

4

0 回答 0