Java EasyMock with EasyMockSupport:无法在@Before中使用模拟
我想对我的timeServiceMock设置一些常见的期望值,但在before方法中它仍然为空。有没有办法让它在每次测试中都不需要调用before()Java EasyMock with EasyMockSupport:无法在@Before中使用模拟,java,junit,easymock,Java,Junit,Easymock,我想对我的timeServiceMock设置一些常见的期望值,但在before方法中它仍然为空。有没有办法让它在每次测试中都不需要调用before() @RunWith(EasyMockRunner.class) public class MyTest extends EasyMockSupport { ...@TestSubject and so on @Mock private TimeService timeServiceMock; @Before public
@RunWith(EasyMockRunner.class)
public class MyTest extends EasyMockSupport {
...@TestSubject and so on
@Mock
private TimeService timeServiceMock;
@Before
public void before() {
System.out.println(this.timeServiceMock);
}
...tests
}
我遗漏了什么吗?看起来EasyMockRunner只在@Test中创建和注入模拟 因此,如果您想在@Before中使用它,请从
TimeService
中删除@Mock注释,并在@Before中自己创建Mock。然后您必须将mock自己注入@TestSubject
比如说:
@RunWith(EasyMockRunner.class)
public class MyTest extends EasyMockSupport {
@TestSubject and so on
Foo testSubject = ...
private TimeService timeServiceMock;
@Before
public void before() {
this.timeServiceMock = createMock(TimeService.class);
...
}
@Test
public void mytest(){
testSubject.setTimeService(timeServiceMock);
...
}
}
嗯,这正是您希望使用EasyMockSupport从我的代码中删除的内容。。。