JUnit配置测试用例

时间:2016-08-08 14:37:39

标签: java spring unit-testing junit spring-java-config

我有一个看起来像这样的javaconfig文件:

@Configuration
public class ServiceConfig {
    @Autowired
    FooBean someBean;

    @Bean
    @Scope(value="session", proxyMode = ScopedProxyMode.TARGET_CLASS)
    public FooService fooService() {
        return new FooServiceImpl(someBean, fooB());
    }

    private Foo fooB() {
        return new FooB();
    }
}

我基于this stack answer创建了一个类似于junit的测试文件:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = ServiceConfig.class)
public class ServiceConfigTest {

}

但我有几个问题:

  1. 我应该用这个junit测试文件测试我的所有配置文件吗?我总共有4个配置文件,包括ServiceConfig文件,所以在ContextConfiguration中我应该将它们全部列出来,还是单独对每个文件进行junit测试?

  2. 我应该在这里测试一下?我试过阅读这个spring guide但是我真的不明白我应该在这里测试什么行为......就好像什么东西能成功自动连接?

2 个答案:

答案 0 :(得分:2)

  

我应该用这个junit测试文件测试我的所有配置文件吗?一世   总共有4个配置文件,包括ServiceConfig文件,所以在   我应该将ContextConfiguration列出全部或者有一个   对每个人进行单独的junit测试?

在您的测试类中,@ ContextConfiguration必须位于类的根目录上。 因此,要测试每个配置,您必须按Configuration创建一个测试类。

  

我应该在这里测试什么?我试过阅读这个春季指南但是   我真的不明白我应该在这里测试什么行为......就好像   什么东西成功自动装配?

测试自动装配是否成功似乎不是很有用。这将是Spring功能的单元测试。如果要对这些类进行单元测试,则应测试自己的处理。目前,你还没有。所以,我不确定测试它们有很大的价值。

答案 1 :(得分:0)

在功能上测试系统或各个单元的预期行为。作为其中的一部分,将对配置进行测试。

您不需要进行测试以确保正确接线。这应该隐含在您正在测试的功能的基础上。

您可以使用@Import将多个配置聚合到一个配置类中。