jwp*_*pol 6 java junit spring jpa spring-boot
spring中有一个@Sql注解,允许在测试方法之前和之后执行sql代码:
@Test
@Sql("init.sql")
@Sql(scripts = "clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD)
public void someTest()
{
}
Run Code Online (Sandbox Code Playgroud)
然而,我有几种测试方法,我想提供与上面的测试相同的干净环境,并且我不想为每个测试重复相同的@Sql注释。如何一次性完成所有方法?例如:
// JPA and Spring other test annotations
@Sql("init.sql")
@Sql(scripts = "clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD)
public class TestClass
{
// init.sql executed before every test, clean.sql executed after every test
}
Run Code Online (Sandbox Code Playgroud)
事实上,当您放置@Sql在 上时class,sql脚本将在该类中定义的每个测试之前和之后执行,更具体地说是在方法之前@Before和之后执行@After。所以,
// JPA and Spring other test annotations
@Sql("init.sql")
@Sql(scripts = "clean.sql", executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD)
public class TestClass
{
// init.sql executed before every test, clean.sql executed after every test
}
Run Code Online (Sandbox Code Playgroud)
将根据@Sql定义工作:
@Target({ElementType.TYPE, ElementType.METHOD})
/// other annotations
public @interface Sql {
//
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8483 次 |
| 最近记录: |