对于(junit)测试以及如何使用单独的@SpringBootApplication是一种好习惯

时间:2016-10-26 17:40:03

标签: spring jpa junit spring-boot

我最初在MySQL设置了一个Spring启动应用程序,到目前为止一直很好。但是现在我正在尝试使用JPA数据库为DAO layer / H2创建更多单元测试。

我看到几个在线演示,在Spring中,通常的做法是使用applicationContext-test来测试上下文设置。

在Spring boot 1.4中它仍然是一个好习惯吗?

@SpringBootApplication(scanBasePackages = {...})
public class ApplicationTest extends SpringBootServeltIntializer{
    ....
}

由于目前没有单独的xml文件保存测试环境,上面看起来是一个很好的解决方案吗?还有性能影响,当应用程序启动时,所有测试上下文也需要加载到内存中吗?

这是否意味着我需要在测试源中创建application.properties? Spring引导有很多隐含的过程,但是我找不到很多关于Spring Boot中测试的DAO层设置的文本解释,所以任何指南都会受到赞赏。

1 个答案:

答案 0 :(得分:3)

我的首选是不要使用Spring进行JUnit测试。

根据定义,JUnit测试应该是关于单个测试单个类的测试。 Spring是一个满足依赖关系的DI引擎。使用真正的依赖关系打破了单元测试的想法;对于那些我手动注射嘲笑的人。

我这样做是为了将测试限制在单个类中。我发现创建Spring工厂和所有应用程序bean需要很长时间。当我进行大量单元测试时,我不想支付这个价格。让Spring脱离混合使我的测试运行得更快。