java - EasyMock 期望使用 void 方法和对象数组作为参数?

标签 java unit-testing mocking testng easymock

当使用 EasyMock 设置 void 方法的期望时,是否可以指定一个对象数组作为该方法的参数之一?

例如,如果我们有这样的东西:

Errors mockErrors = createMock(Errors.class);
...
mockErrors.rejectValue(Object[]{"5", "2"});
mockErrors.replay();

classUnderTest.someMethod();

在 ClassUnderTest 中,someMethod 调用rejectValue(Object[]{"5", "2"});

但是,尽管期望值被设置为所调用的内容,但 Easy Mock 仍会提示意外的方法调用。

>     Unexpected method call rejectValue(["5", "2"]):
>         rejectValue(["5", "2"]): expected: 1, actual: 0

我认为这是因为它在底层依赖于 Object[] 上的 equals 方法,并且由于两者不同,它返回 false 并且不满足条件。

有办法解决吗?由于我没有使用expect()设置期望,所以我可以使用any()...有没有办法在void方法上做同样的事情?

最佳答案

mockErrors.rejectValue(aryEq(new Object[] {"5", "2"}));

参见the javadoc了解详情。

关于java - EasyMock 期望使用 void 方法和对象数组作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10399454/

相关文章:

java - 当我在 Jenkins 上发布时,为什么我的测试看不到我的系统属性?

java - 尝试使用java和clojure在eclipse中创建maven动态Web项目

c# - 最小起订量与 Unity 容器单元测试

http - Karma 测试中出现错误 : No provider for HttpService!

c# - 如何在没有扩展/贡献的情况下自动模拟最小起订量中的容器(例如 IList)

java - Hibernate JUnit 测试持久化 vs. jsf live 持久化

java - 使用 hibernate native 查询的错误 BigInteger 结果

unit-testing - Fluent NHibernate CheckProperty and Dates

python - 如何在 django 中强制出现异常以便在 django 中对其进行测试

objective-c - 模拟 CLLocationManager (swift) 用于测试