java - EasyMock 记录阶段模拟作为参数

标签 java testing easymock

是否可以在注册阶段使用 EasyMock 注册一个参数为 mock 的方法调用?例如:

String s = 'a string';

ClassA a = createMock(ClassA.class);
ClassB b = createMock(ClassB.class);
ClassC c = createMock(ClassC.class);

expect(c.bFactoryMethod()).andReturn(b);
a.someMethod(s, b);
replayAll();

ClassToTest toTest = new ClassToTest();
toTest.wrapperMethodThatCallsSomeMethod(s);
verifyAll();

EasyMock 提示:

java.lang.IllegalStateException: missing behavior definition for the preceding method call

最佳答案

是的,将模拟参数传入模拟方法是完全有效的。在您的情况下,我怀疑 a.someMethod(s, b) 不是 void 方法。所以你确实应该记录一个返回值。

我也没有看到 ab 是如何注入(inject)到 ClassToTest 中的。但我想这段代码被排除在问题之外。

关于java - EasyMock 记录阶段模拟作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32526778/

相关文章:

ruby-on-rails - 在 rspec 中编写测试用例时出错

perl - 如何对打印到屏幕的 Perl 函数进行单元测试?

java - PowerMockRunner 在运行简单测试时导致 ExceptionInInitializerError

java - 使用 EasyMock 进行单元测试时出现意外的方法调用

java - 为什么 2010 年 12 月 31 日返回 1 作为一年中的一周?

java - 如何以编程方式检查是否启动了 Eclipse 控制台构建或 GUI 构建?

python - 在 python 应用程序中集成 pytest(提供 fixture )

java - PowerMock + EasyMock : private void method without invokation

java - JLabel 文本未出现

java - Hibernate和Spring3事务管理注解-配置问题: Hibernate-Exception: No Hibernate Session bound to thread