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が自動的に呼び出される場合AddItemTestInitialize属性のため)。

最初の呼び出しは問題ありませんが、この function( AddItem) が別の関数ConstructFilesを呼び出すと、ブレークポイントにAddItem到達し、関数が再度実行されます。

なんで ?

もちろん、私はTestMethod属性を使用して別のテストを行っていますが、最初に呼び出すときに不明なAddItem点があり、それがConstructFiles.

4

0 に答える 0