2016-08-10 148 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

Iam不確定UnitTest是否適合您,至少如果您希望以這種方式實施此實施方案。

如果你想測試UI的元素,你應該使用UITest爲Xamarin(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綁定。所以你可以完全忽略這個視圖,只使用你的視圖模型的unittest。

儘管在我看來ViewModel關閉之前測試按鈕是否被禁用是沒有多大意義的。還是有更多的按鈕或viewmodel.close(),你沒有與我們分享?