EasyMock を使用して JUnit でテストをセットアップしようとしていますが、頭を包むことができない小さな問題に直面しています。ここの誰かが助けてくれることを願っていました。
これは、私がテストしようとしている方法の簡略化されたバージョンです。
public void myMethod() {
//(...)
Obj myObj = this.service.getObj(param);
if (myObj.getExtId() != null) {
OtherObj otherObj = new OtherObj();
otherObj.setId(myObj.getExtId());
this.dao.insert(otherObj);
}
//(...)
}
わかりましたので、EasyMock を使用してservice.getObj(myObj)
呼び出しをモックしましたが、正常に動作します。
私の問題は、JUnit がdao.insert(otherObj
) 呼び出しにヒットしたときに発生します。EasyMock はそれにスロー*Unexpected Method Call*
します。
テストでそのdaoをモックして使用expectLastCall().once();
してもかまいませんが、挿入時にパラメーターとして渡される「otherObj」のハンドルがあることを前提としています...条件付きであるため、もちろんそうではありませんテストされるメソッドのコンテキスト内で作成されます。
誰かがそれに対処しなければならなかったことがあり、どういうわけかそれを解決しましたか?
ありがとう。