spring如何使用一个Web环境进行多次测试

时间:2017-11-29 15:20:52

标签: java spring spring-test

我有多个具有多个路径的REST API。我正在使用spring的web环境来设置一个http服务器,用junit测试这些APIS。所以我使用一个包含以下anotation的类并注入端口:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@ActiveProfiles(ConfigConstants.PROFILE_LOCAL)
public abstract class TestBase{

    @Autowired
    protected TestRestTemplate restTemplate;

    @LocalServerPort
    public int httpPort;

    ...
}

我的测试类继承了Testbase.class并使用了相同的端口。

设定:

  • TestBase
  • A类扩展TestBase
  • B类扩展TestBase
  • ...

在日志中,我可以看到不仅仅有一个Spring服务器,因为Spring ASCI Logo会多次出现。

有没有办法启动WebEnvironment一次并将其分享给我的所有测试?

此致 的Monti

1 个答案:

答案 0 :(得分:3)

  

有没有办法启动WebEnvironment一次并将其分享给我的所有测试?

这是自动发生的,假设您未在子类中提供更改上下文缓存键的其他配置。

详细信息可以在Spring参考手册的Context Caching部分找到。

此致

Sam( Spring TestContext Framework的作者