【发布时间】:2019-01-09 02:06:02
【问题描述】:
我要测试的类名为UserService,带有sendEmail 方法,它会向用户发送一封电子邮件。
要完成这项任务,它依赖于EmailService。现在,当编写一个测试用例来测试这个时——我应该创建UserService userService = new UserService() 并模拟电子邮件服务还是创建上下文文件在我的测试类中定义UserService bean 和@Autowired UserService 并模拟EmailService?
这两种方法有什么区别,我什么时候应该使用另一种?其中哪一个是真实的对象?
【问题讨论】:
-
This discussion 关于使用@Autowired vs 构造函数注入可能会有所帮助。将单元测试与生产代码一样对待,并尽可能保持精简。在这种情况下,第二个选项使单元测试 Spring 知道哪个 IMO 使单元测试比它需要的更复杂。
标签: java spring mockito spring-test