我正在尝试为我的Spring Boot应用程序创建冒烟测试。我想设置类似于以下内容的Junit 5测试类,以便可以对服务器执行请求,并使其从H2返回结果。
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class CountriesIntegrationTest {
@LocalServerPort
private int port;
@Autowired
private TestRestTemplate restTemplate;
@Test
@Sql("classpath:country/country-inserts.sql")
public void shouldRetrunCountry() {
...
}
}
但是,没有为我的H2嵌入式数据库创建sql模式,因此sql脚本未运行。而且我不确定为什么会这样。
但是,如果我将SpringBootTest注释替换为@DataJpaTest
,则将创建架构并运行插入sql脚本。
因此,我确定我需要在@SpringBootTest
中添加一些附加注释,但是我不确定它是什么。
我尝试添加以下注释,但它们似乎都不起作用:
@AutoConfigureDataJpa
@AutoConfigureTestDatabase(connection = EmbeddedDatabaseConnection.H2)
@AutoConfigureTestEntityManager
@ImportAutoConfiguration
当然我不能将@DataJpaTest
与@SpringBootTest
结合使用,但是我将如何创建完整的E2E测试?