2016-08-10 2 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가 올바른 대답인지 잘 모르겠다. 그런 식으로 구현을 유지하고 싶다면 적어도 at least.

당신은 시험이 같은 일을 위해 할 수있는 UI 요소는 자 마린 위해 (https://developer.xamarin.com/guides/testcloud/uitest/을)를 UITest를 사용해야을 테스트하도록하려면 어떻게 사전에 필요한 모든 사용자 상호 작용 :

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

또 다른 옵션 eventhandler 및 _button.Enabled = false을 제거하여 MVVMCross Bindings로 대체하십시오. 따라서 뷰를 완전히 무시하고 뷰 모델에 unittest를 사용할 수 있습니다.

내 의견으로는 ViewModel이 닫히기 바로 전에 버튼이 비활성화되어 있는지 테스트하는 것이 좋지 않을지라도. 또는 버튼이나 viewmodel.close()로 더 많은 일이 발생 했습니까?