【发布时间】:2012-04-25 13:10:29
【问题描述】:
我正在使用 Spring Test 框架和 Junit。我有一个用于测试用例的 spring 上下文文件:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:spring/restTestContext.xml",
"classpath:spring/webserviceContext.xml" })
@PrepareForTest(User.class)
public class RestTestsIT {
// This is a mock
@Autowired private AWSMailService mailService;
...
}
在 restTestContext.xml 中,我正在创建一个 AWSMailService 类型的 bean(实际上是一个模拟):
<bean id="mailService" name="mailService" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg value="com.acme.utils.email.AWSMailService" />
</bean>
在测试中,我试图验证在 mailService 模拟上调用了 sendEmail() 方法,但我得到了 NotAMockException,尽管在对象上调用 toString() 告诉我它是一个模拟:
public void testEmailSent() {
...
// Results in "Mock for AWSMailService, hashCode: 31777764"
System.out.println(mailService.toString());
// Results in NotAMockException
verify(mailService).sendEmail(any(String.class), ...);
}
有人知道是什么原因造成的吗?
谢谢
【问题讨论】:
-
已修复 :) 显然我必须等待 8 小时才能回答我自己的问题,所以我明天会更新 :(
标签: junit mockito spring-test