1
私はユニットテストケースをMockitoで記述しようとしています。以下は私のサンプルコードです:Mockitoオブジェクトがnullの場合
class A {
Attr1 attr1;
Attr2 attr2;
public boolean methodToBeTested(String str) {
Boolean status1 = attr1.doSomething();
TempObject temp = attr2.create();
Boolean result = anotherMethod() && temp.doAnotherThing();
}
boolean anotherMethod() {
return true;
}
}
私のテストクラス:
class ATest extends AbstractTestCase {
@Mock
Attr1 attr1;
@Mock
Attr2 attr2;
@Mock
TempObject tempObj;
A obj; // This is not mocked
@Before
public void setup() {
obj = new A(attr1, attr2);
}
@Test
public void testMethodToBeTested() {
Mockito.when(obj.attr1.doSomething()).thenReturn(true);
Mockito.when(obj.attr2.create()).thenReturn(tempObj);
Mockito.when(tempObj.doAnotherThing()).thenReturn(true);
Assert.assertTrue(obj.methodToBeTested(someString))
}
}
それはtemp.doAnotherThing()
を実行しようとしたとき、私はヌル例外を取得しますが。 モックテストでは、Mockito.doReturn(tempObj).when(obj.attr2).create()
inplaceの代わりにMockito.when(obj.attr2.create()).thenReturn(tempObj)
を使って試してみましたが、これはどちらでも役に立ちません。
私はオブジェクトtempObjを誤って嘲笑していますか?
あなたは 'tempObj'を意味ですか? –
はい。私は模擬されたオブジェクトをテストクラスではtempObj、実際のクラスではtempとして命名しました。 – learningMyWayThru