【问题标题】:Spring: JUnit-Test: applicationContext is not loadedSpring:JUnit-Test:applicationContext 未加载
【发布时间】: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


【解决方案1】:

我不知道为什么你的测试没有显示任何异常,但是Spring 2.5 is not compatible with JUnit 4.5。要么迁移到 Spring 3 里程碑,要么将 JUnit 降级到 4.4。

【讨论】:

    【解决方案2】:

    我还没有测试,但是如果你真的想升级到spring 3.0,你可以使用ehcache-spring-annotations framework

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    相关资源
    最近更新 更多