0
这里嘲笑对象上是我的测试用例的相关部分:JMockit的NullPointerException在期望
@NonStrict
private StowServiceWrapper mockStowServiceWrapper;
@NonStrict
private IsItemStowableResponse mockIsItemStowableResponse;
@NonStrict
private IsItemStowable mockIsItemStowable;
...
@Test
public void testMoveItemActivitySuccess() {
final MoveItemActivity activity = new MoveItemActivity();
final MoveItemRequest request = new MoveItemRequest();
new Expectations() {
{
invoke(activity, "isItemStowable", request); result=mockIsItemStowable;
//activity.isItemStowable(request); result=mockIsItemStowable;
mockStowServiceWrapper.isItemStowableToBin(anyString, anyString, anyString, anyString); result=mockIsItemStowableResponse;
mockIsItemStowableResponse.hasFilterResults();result=false;
}
};
MoveItemResponse response = activity.enact(request);
下面是类源的相关部分(在MoveItemActivity):
StowServiceWrapper stowServiceWrapper = new StowServiceWrapperImpl();
private IsItemStowable isItemStowable(MoveItemRequest input) {
IsItemStowable isStowable = new IsItemStowable();
isStowable.setIsItemStowable(false);
System.out.println("TEST1");
/* First check if item is stowable to bin */
IsItemStowableToBinResponse isItemStowableResponse = stowServiceWrapper.isItemStowableToBin();
System.out.println("TEST2");
/* fastFail is 'true' by default, so stow service request will only return one filter violation at a time */
if (isItemStowableResponse.hasFilterResults()) {
...
}
I” m在此行发生NullPointerException:if (isItemStowableResponse.hasFilterResults())
我对JMockit比较陌生。我不知道为什么它会执行这个方法中的代码 - 我只是想嘲笑整个方法,因为它是我试图单元测试的'enact'方法中的一个依赖项。
您不是在嘲笑Expectations块中的活动对象;这就是为什么该代码无法正常工作。我在你的回答中看到,你已经转向了JMockit中的另一种嘲笑方式......基于状态的,而不是基于你的问题的行为。无论哪种方式都可以完成这项工作。 – 2013-05-02 15:15:43