【发布时间】:2010-11-24 06:53:19
【问题描述】:
我有以下测试类,但我设置为“ContextConfiguration-locations”并不重要 - 它从未设置我的 UserService。当我在位置属性中设置一个不存在的文件时,它不会抛出任何错误......我做错了什么?
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContextTest.xml" })
public class BasicPersistenceTest {
@Autowired
private UserService userService;
@Test
public void testUserLogin() throws Exception {
User result = userService.getUser("stefan", "walkner");
Assert.assertNotNull(result);
}
@Test
public void testLogin() {
User user = userService.getUser("stefan", "walkner");
Assert.assertNull(user);
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
}
春季版:2.5.6.SEC01
JUnit 版本:4.5
JDK:1.5
【问题讨论】:
-
使用@Autowired 时,您不需要该属性的setter,我也不明白为什么要为它使用公共getter。
-
我删除了 getter/setter 并包含了 setup() 方法。奇怪的是,似乎从未调用过 setup() 方法......我在那里放了一个 Assert.assertNotNull(null) 和一个调试断点,但它永远不会到达那里......
-
您是否使用 @Before 注释对 setup() 进行了注释?而且您没有收到任何 Spring 注入错误?您的 UserService bean 是如何声明的,您也可以发布吗?
-
如果使用@Autowired,Spring不需要任何方法访问该属性,直接访问私有即可。
标签: java unit-testing spring junit