【发布时间】:2013-05-01 20:04:15
【问题描述】:
我有一个组件设置,它本质上是一个应用程序的启动器。它是这样配置的:
@Component
public class MyLauncher {
@Autowired
MyService myService;
//other methods
}
MyService 使用@Service Spring 注释进行注释,并且自动装配到我的启动器类中,没有任何问题。
我想为 MyLauncher 编写一些 jUnit 测试用例,为此我开设了一个这样的课程:
public class MyLauncherTest
private MyLauncher myLauncher = new MyLauncher();
@Test
public void someTest() {
}
}
我可以为 MyService 创建一个 Mock 对象并将其注入到我的测试类中的 myLauncher 中吗?我目前在 myLauncher 中没有 getter 或 setter,因为 Spring 正在处理自动装配。如果可能的话,我不想添加 getter 和 setter。我可以告诉测试用例使用@Before init 方法将模拟对象注入到自动装配的变量中吗?
如果我完全错了,请随意说。我还是新手。我的主要目标是只使用一些 Java 代码或注释,将模拟对象放入 @Autowired 变量中,而无需编写 setter 方法或使用 applicationContext-test.xml 文件。我宁愿在 .java 文件中维护测试用例的所有内容,而不必仅为我的测试维护单独的应用程序内容。
我希望将 Mockito 用于模拟对象。在过去,我通过使用org.mockito.Mockito 并使用Mockito.mock(MyClass.class) 创建我的对象来完成此操作。
【问题讨论】:
标签: java spring unit-testing junit autowired