我是
spring框架的新手,并且使用
Spring Context对其依赖注入功能有疑问.
这是我正在尝试编写集成测试的类:
public class UserService { private Validator validator; private UserRepository userRepository; private Encryptor encryptor; private MailService mailService; ... public void registerUser(User user) { user.setPassword(encryptor.encrypt(user.getpassword())); Errors errors = new BindException(user,"user"); validator.validate(user,errors); if (errors.getErrorCount() == 0) { userRepository.addUser(user); mailService.sendMail(user.getEmail()); } }
在我的测试中(使用Mockito)我想确保调用这四个项目,所以我创建了如下测试:
public void testRegisterCallsValidateInValidator() { userService.registerUser(testUser); verify(userService.getValidator(),times(1)).validate(any(User.class),any(Errors.class)); }
然而,所有测试都失败了,说我多次调用该方法.我唯一的猜测是UserService bean在所有测试开始时创建一次,但在每次测试后都不会重新加载.
在我的测试配置中,我使用以下xml来决定要注入的bean:
<bean id="userService" class="be.kdg.coportio.services.UserService"> <property name="validator" ref="validator"/> <property name="userRepository" ref="userRepository"/> <property name="encryptor" ref="encryptor"/> <property name="mailService" ref="mailService"/> </bean>
有任何想法吗?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。