2012-02-15 5 views
2

私は複雑なアプリケーションを書いています。サーバーとクライアントアプリケーションがあります。私のアプリケーションに新しいウィンドウを追加したいのですが、サーバーを起動してからクライアントを起動し、ログインする前にいくつかのボタンをクリックしてくださいそれは迷惑で、時間がかかります。だから私はサービスのためのモックを使用して私のwpfフォームを実行することができます(私はサーバーを実行する必要はありませんし、ログインする必要はありません)を実行することができますいくつかのソリューションを探していますクリックしたり、コントロールが表示され、私が望むやり方で行動します。 ログインを使用する必要があるアプリケーション全体を実行してフォームにアクセスしようとすると時間を無駄にする必要がないため、このケースでは時間を大幅に節約できます。一部の検証フォームなどをバイパスして検索します。 既にシンプル解決策はそれは素晴らしいだろう。WPFフォームのテスト方法は?

答えて

0

あなたはdependency injectionのいずれかの種類を使用していますか?もしそうなら、あなたは単純にmocking framework#if-else directivesの組み合わせで重いサービスの偽のバージョンを作ることができます。どこか、アプリケーションの起動コードで:

ILoginService service; 

#if DEBUG 
    service = A.Fake<ILoginService>(); 
    // you could even set up your fakes to return logged user to 
    // automate logging in process: 
    var userFake = A.Fake<IUser>(); 
    A.CallTo(() => service.LogIn(A<string>.Ignored)).Returns(userFake); 
#else 
    service = new RealLoginService(); 
#endif 

var myWindow = new MyWindow(); 
var viewModel = new ViewModel(service); 
myWindow.DataContext = viewModel; 

// ... 

必要なのは、ILoginService依存性を取ることができること(あなたがそのような使用と仮定した場合)ViewModelです。それであなたはあなたの好みに擬似/偽装することができます。

関連する問題