我有一个方法是这样的:关闭验证覆盖默认嘲讽
public void save(DbSession session,Wrappe wrapper,Wrappe wrappe){
//...other logic
//save wrapper
wrapper=(Wrapper)session.save(wrapper)
//set wrapper's id into wrappee
wrappee.setWrapperId(wrapper.getId());
//save wrappee
session.save(wrappee);
}
和测试代码如下所示:
given:
session.save(_) >> wrapperWithGeneratedId
when:
obj.save(session,wrapper,wrappee)
then:"wrapper got saved"
1*session.save(_) >> {Wrapper save ->
diffs(wrapper,saved)==null
}
and:"wrappee"
1*session.save(_) >> {Wrappe saved ->
diffs(wrappee,saved)==null
}
这些测试代码会给出一个例外:
java.lang.ClassCastException: java.lang.Boolean cannot be cast to com.company.model.Wrapper
如果在“然后”部分评论验证关闭,测试将通过,所以我猜这部分
1*session.save(_) >> {Wrapper save ->
diffs(wrapper,saved)==null
}
凌驾于这个嘲弄:
session.save(_) >> wrapperWithGeneratedId
任何方法都做正确?