Easymock:matcher调用是在预期之外使用的

Lon*_*zak 1 java junit unit-testing easymock

我将代码中方法的返回值更改void为和Object.然后两次junit测试失败,说明expect(...).andReturn(...)缺失了.添加后,一个测试是固定的,另一个仍然抛出一个看起来有点奇怪的异常:

java.lang.IllegalStateException:matcher调用在期望之外使用

适用于一个但不适用于另一个的代码是:

expect(myMock.foo(1l,FooEnum.A)).andReturn(EasyMock.anyObject(String.class));
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Kar*_*rde 6

EasyMock.anyObject(String.class)是一个匹配器,它不是一个String,不能用作String匹配 - 匹配如下所示:

when(foo.bar(EasyMock.anyObject(String.class))).thenReturn("foo-bar")
Run Code Online (Sandbox Code Playgroud)

PS你应该new String()尽可能避免使用; 使用它总是更好"".