2016-08-10 7 views
1

AndroidとiOSビュー内の単体テストでボタンの動作を確認する必要があります。ユニットのMvvmCross.Droid.Viewのテスト

Androidの場合は、私はMvxActivityから継承するビューを持っています。私のiOSビューはMvxViewControllerから継承します。

Androidのビューを例にとると、私はそうのようにバインドされ、ボタンのクリックイベントがあります。

_buttonUseVideo.Click += DisableButton; 

をし、イベントハンドラは次のようになります。

private void DisableButton(object sender, EventArgs eventArgs) 
{ 
    _button.Enabled = false; 
    _localViewModel.Close(); 
} 

私はボタンをクリックした後、フォームがすぐに閉じているので、私は受け入れテストを使用することはできません。単体テストでこの動作をテストすることは可能ですか?

答えて

1

ここでは、UnitTestが正しい答えであるかどうかはわかりませんが、実装をそうしたままにしておきたい場合は、

あなたはUI要素をテストしたい場合は、XamarinのためUITest(https://developer.xamarin.com/guides/testcloud/uitest/)を使用する必要があり、どこができた。このようなものにし、テストが事前に必要なすべてのユーザーとの対話をしましょう:

var isDrawerOpen = app.Query(d => d.Id("navigation_drawer").Invoke("isDrawerOpen", 3)); 
    Assert.True((bool) isDrawerOpen[0]); 

別のオプションイベントハンドラと_button.Enabled = falseを削除してMVVMCross Bindingsと置き換えることになります。だから、あなたはビューを完全に無視し、あなたのビューモデルにunittestを使うことができます。

私の意見では、ViewModelが閉じられる直前にボタンが無効になっているかどうかをテストするのは意味がありません。または、あなたが私たちと共有しなかったボタンまたはviewmodel.close()がさらに発生していますか?

関連する問題