インターフェイスから他のクラスでメソッドを実行することを唯一の目的とするクラスがあります。
クラスのインターフェースのテストは問題ありませんが、ランナーは実際には何もしません。(現状では)コンストラクターに渡される唯一のパラメーターはプライベートに保たれます。
私の場合、クラスはテキストファイルをデータベースにインポートしています。
internal DataImporter
{
private List<IFileImporter> _importers;
public DataImporter(List<IFileImporter> importers){
_importers = importers;
public bool RunImporters()
{
//foreach importer, call its "Run" method - each one then does whatever it needs to do
//however, this need not call a specific "Run" method on IFileImporter
//I have another app that uses IFileImporter to check for presence of a file first
//then allow user to choose to import or not.
}
ここでテストするものは何もないように私には思えますか?の値をテストすることはできません。テストの_importers
ためだけに公開したくありません。DataImporterはこのインスタンスに固有であるため、インターフェースを作成してもメリットはないようです。
他の場所でIFileImportersを再利用しましたが、これが唯一の「バルク」インポーターであり、他のインポーターはwinformsアプリから手動で呼び出され、他のインポーターはこのプロジェクトにまったく含まれていません。
だから、これをテストする必要があります...これについて何をテストできますか?