特に設計をテスト可能にする方法に関して、私が取り組んでいるアプリケーションの新しいモジュールに関するいくつかの設計アドバイスを探しています。
この問題は非常に一般的です。データベースからデータをロードし、そのデータに対していくつかの操作を実行して、結果をデータベースに保存します。アプリケーションの他のほとんどのモジュールには、次のパターンがあります。
private repo; //Set in constructor
public void Run()
{
Stuff stuff = repo.LoadStuff()
Result result = RunOperationsInPrivateMethod(stuff); //private method
repo.SaveResult(result);
}
したがって、これをテストするために、いくつかの選択肢があることがわかります。
- スタッフを返し、結果を確認するために使用できるモックリポジトリを挿入します。
- RunOperationsInPrivateMethodをリファクタリングしてアクセスを保護し、操作を直接テストします。
他のオプションがありませんか?人々の好みは何ですか?