2016-07-06 16 views
0

私はAndroidアプリ用のJUnitテストをいくつか作成しようとしています。JunitテストのMockingアンドロイドメソッド

public void checkBoxAction(View v) { 
    CheckBox cb = (CheckBox) v; 
    Boolean isChecked = cb.isChecked(); 
    //Do stuff 
} 

私はMockitoを使用していますが、私はこれまでのところ持っている:私は、私がしようとしています以下の方法は、検査を受けるためにしているアプリで

// ... 
CheckBox dummyV = new CheckBox(mMockContext); 
Mockito.when(dummyV.isChecked()).thenReturn(true); 
item.checkBoxAction(dummyV); 
// ... 

をしかし、ときに私が実行テストは私がエラーを取得する:

java.lang.RuntimeException: Method isChecked in 
android.widget.CompoundButton not mocked... 

私は問題があると思う方法checkBoxActionisCheckedメソッドはvでは実行されず、他のオブジェクトで実行されます。この仮定は正しいですか?これは問題ですか?それをどうやって修正することができますか?それとも別のことがありますか?

+0

てみ 'CheckBoxのdummyV =モック(CheckBox.class);' –

+0

はい、これは働いていました!ありがとう! – Jeni

+0

okと答えました。それが動作する場合は、それを受け入れたものとしてマークしてください –

答えて

1

あなたがMockito.whenを使用したい場合はCheckBoxを模擬する必要があり、試してみてください。

CheckBox dummyV = mock(CheckBox.class);