を使用して、私は私がテストしたい方法があります:私はテストケースは、計算をチェックすることですので、私はテストとして考えた何方法の応答を上書きするMockitoを使用して渡されたパラメータ
Public String doSomething (MyActivity activity , int number) {
// do some stuff/math calculations
float aX = number/3450;
float bX = aX/2;
float cX = bX * 6;
return activity.getString(R.string.NameOfProduct, cX)
}
をその次の方法:
@Test
public void validDoSomething() throws Exception {
myObject = Mockito.spy(MyActivity.class);
ArgumentCaptor<Integer> captor=ArgumentCaptor.forClass(Integer.class);
MyActivity activity = Mockito.mock(MyActivity.class);
when(activity.getString(anyInt(),captor.capture())).thenReturn(new Answer<String>() {
@Override
public String answer(InvocationOnMock invocation) {
return (String) invocation.getArguments()[0];
}
}.toString());
int x = 9;
String test = myObject.validDoSomething (activity, x)
float aX = x/3450;
float bX = aX/2;
float cX = bX * 6;
assertEquals(test ,cX)
}
activity.getString()
がダウンし、Androidのコンテキストを使用していますので、上のように私はちょうど計算されたパラメータを返すと私は私の(同じ)の計算に対して検証しますについて考えているので。私はそれを上書きします。
事は、私がテスト/クラスの名前...ではなく間違っている私は何を
- を渡された実際のパラメータを持つオブジェクトを取得しています応答しているのですか?実際の対応をどうやって得ることができますか?
- それは正しい方法でテストできますか?
答えが正解です。また、インタフェースの後ろでactivity.getStringを移動することもできます。インタフェース(StringFetcherなど)にはgetProductStringメソッドがあります。 mockitoを使用すると、インタフェースの復帰を模擬することができます。 – Smashing