Java Spring:JUnit测试:未加载applicationContext
我有下面的测试类,但设置什么“ContextConfiguration locations”并不重要——它从未设置我的UserService。当我在locations属性中设置一个不存在的文件时,它不会抛出任何错误。。。我做错了什么Java Spring:JUnit测试:未加载applicationContext,java,unit-testing,spring,junit,Java,Unit Testing,Spring,Junit,我有下面的测试类,但设置什么“ContextConfiguration locations”并不重要——它从未设置我的UserService。当我在locations属性中设置一个不存在的文件时,它不会抛出任何错误。。。我做错了什么 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:applicationContextTest.xml" }) public class Ba
@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我不知道为什么您的测试没有显示任何异常,但是。要么移动到Spring 3里程碑,要么将JUnit降级到4.4。我还没有测试它,但是如果你真的想升级到Spring 3.0,你可以使用。当使用@Autowired时,你不需要属性的setter,我也不明白你为什么想要它的公共getter。我删除了getter/setter并包含了setup()-方法。奇怪的是,似乎从未调用setup()-方法。。。我在其中放置了一个Assert.assertNotNull(null)和一个调试断点,但它从未到达那里……您是否用@Before注释对setup()进行了注释?你没有发现任何弹簧注射错误吗?你的UserService bean是如何声明的,你也可以发布吗?如果你使用@Autowired,Spring不需要任何方法访问属性,它可以直接访问私有的。请注意,Spring 2.5也可以这样做