jmockit还是0.999的版本,确实还不够细致,比如,如果在withEqual前有具体的,就会有问题,因为withEqual是增加了一个比较器
protected final <T> T withInstanceOf(Class<T> argClass)
{
addMatcher(new IsInstanceOf(argClass));
return null;
}
这个比较器是不完美的,没有记录当前需要比较记录目前的参数的顺序,会导致比较的参数不对
MockClz.oneMethod("1111", "2222",
withInstanceOf(XxxClz.class), (Logger) any);
这时候,会错误java.lang.AssertionError: Parameter 0 of java.util.List
因为比较的是XxxClz,而是实际运行传入的第0个参数的值("1111")
所以需要改成
MockClz.oneMethod(withEquel("1111"), withEquel("2222"),
withInstanceOf(XxxClz.class), (Logger) any);