Java Spring:JUnit测试:未加载applicationContext

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

我有下面的测试类,但设置什么“ContextConfiguration locations”并不重要——它从未设置我的UserService。当我在locations属性中设置一个不存在的文件时,它不会抛出任何错误。。。我做错了什么

@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也可以这样做