2

これをどのように行うのか疑問に思っていましたか?

メッセージボックスがポップアップするたびに「OK」をクリックするのは非常に面倒です。

4

2 に答える 2

2

理想的には、メッセージ ボックスを依存関係として設定して、単体テスト中にモック/スタブ/偽造できるようにします。次のようになります。

public interface IMessageBox
{
  Show(...);
}

もちろん、MessageBox ラッパー クラスにインターフェイスを実装する必要があります。DI の詳細: http://en.wikipedia.org/wiki/Dependency_injection

今すぐこの方法でアプリケーションを再設計できない場合は、このアプローチを試すことができます。

于 2011-10-06T17:32:45.940 に答える
0

理想的には、テストはビジネス ロジックをテストすることになります。私は通常、MessageBox を UI ではなく UI コンポーネントと見なします。これには、エラー/例外/検証がユーザー通知とは無関係に発生するように、プログラム フローを変更する必要があります。プロパティ セットの例外ではなく、IDataErrorInfo に依存する IE。

それを避けることができず、メッセージボックスをラップして DI でモックを使用するルートに進みたくない場合Public Shared Property RunSilent As Boolean = Falseは、アプリケーションでシングルトン変数を設定する手法を使用して、アプリケーションが想定されていることを示しました。サイレントで実行し、メッセージボックスを呼び出す前にそのプロパティをチェックして、サイレントで実行していない場合にのみボックスを表示します。次に、単体テストのセットアップで、silent フラグを true に設定します。理想的ではありませんが、効果的です。

于 2011-10-06T19:20:18.157 に答える