我有一个应用程序,我使用Spring(注释,而不是xml),我需要在单元测试中加载bean。我有我想要使用的代码中的AppConfig类,但是有一个不同的数据源(我在test文件夹中定义了一个)。这是因为我想在我的测试中使用内存数据库,而不是真正的数据库。
以下是我尝试运行AppConfig类的方法:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {App.class, AppConfig.class})
public class DAOManagerTest {
//All code goes here
@AutoWired
UserDAO userDAO;
@Test
public void testGet() {
List<User> test = userDAO.selectAll();
for (User u: test) {
u.toString();
}
}
}
这并不完全有效,因为它无法在UserDAO类中创建bean。我想我需要一些关于如何在单元测试中处理弹簧的教程/指南。我应该在我的测试文件夹中定义新bean,还是可以从我的代码中使用spring类?此外,是否可以为测试定义单独的数据源?
答案 0 :(得分:1)
是。例如,如果您在DAOManagerTest
中定义了一些bean,必要时使用@Primary
,并将DAOManagerTest.class
添加到@ContextConfiguration
。
还有很多其他方式来安排它,比如使用个人资料或模拟等等。