需要初始化什么才能使spring-boot集成测试独立运行

时间:2015-06-19 16:36:44

标签: spring-boot integration-testing rest-assured

这就是我的基础测试类 -

@SpringApplicationConfiguration(classes = ServiceApplication.class)
@WebAppConfiguration
@IntegrationTest("server.port:8084")
public class BaseTestStartService {

    //TODO:add basic service test

}

不确定在这个基类中要实现什么?什么是正确的过程?基类在测试类中实现为 -

 @RunWith(SpringJUnit4ClassRunner.class)
    public class TestClass extends BaseTestAPIService{
//add assertions
}

我正在尝试实施正确的流程,以寻求一些建议。

1 个答案:

答案 0 :(得分:0)

也许您可以更深入地了解您的服务的确切功能和要测试的内容,例如: REST调用RestTemplate或对组件bean的直接方法调用。

无论哪种方式,一些提示可能都很有趣:

  • 您可能需要利用随机端口分配,指定server.port:0并最终使用@Value("${local.server.port}")自动装配int
    • 否则测试运行器可以重用上下文并尝试在运行第二个实现时在同一端口上第二次启动服务;
  • 您可以使用@Before@After anotations在基类上设置一组通用的灯具;
  • 基类应该是抽象的;
  • 主要的SpringApplicationConfiguration类通常称为“SomethingTestedHost”。

无论哪种方式,一个常见的良好做法是保持您的服务模块化,并按照@Test注释方法使用一个不同的测试用例。 根据您的配置判断,您可能需要构建测试的大型服务。如果您正在使用测试驱动开发并计划稍后隔离测试的服务,那么这可能是一种很好的做法。