単体テストは、コードの個々の部分 (通常は単一のメソッド) を自動化された方法でテストすることを目的としています。NUnit や MSTest などの単体テスト フレームワークは、この種のテストをサポートするように設計されています。
ただし、複数のメソッドを順番に呼び出して (各メソッドでいくつかの状態を変更する)、結果を検証することを妨げるものは何もありません。これは統合テストになります。疑似コードの例:
var f = new Folder("C:\\");
var f2 = f.CreateSubfolder("test");
Assert.Exists(f2.Path)
var file = f2.CreateFile("abc.txt");
Assert.Exists(file.Path)
f2.Delete();
Assert.NotExists(f2);
ここでの意図は、個々のメソッドではなく、共通の状態を変更する一連のメソッド呼び出しの結果をテストすることです。ファイルシステムの使用は自動テストの最良の例ではないかもしれませんが、概念は簡単に理解できるほど一般的です。
この方法で統合テストを作成することは許容されますか? このようなアプローチの利点と欠点は何ですか?