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