期待使用EasyMock作为模拟参数的任何东西

Bja*_*sen 28 java tdd unit-testing easymock mocking

使用EasyMock我希望能够说我希望在我的模拟上调用一个特定的方法,但我不关心用于调用mock的参数.

SomeInterface mock = EasyMock.createMock(SomeInterface.class);
mock.send(/*anything*/);
replay(mock);

/* Perform actions that will eventually invoke mock */

verify(mock);
Run Code Online (Sandbox Code Playgroud)

这有可能,怎么样?

另外,如果我想接受从特定基类派生的任何对象,我该如何指定?

Pét*_*rök 34

要接受任何对象作为参数:

mock.send(anyObject());
Run Code Online (Sandbox Code Playgroud)

(您可能需要将表达式转换为所需的类型.)

此外,要接受特定类型的任何对象,请使用:

mock.send(isA(SomeObject.class));
Run Code Online (Sandbox Code Playgroud)