Java集成测试可重用基础设置
在我的应用程序中,我有两个集成测试,它们都执行以下操作:Java集成测试可重用基础设置,java,integration-testing,Java,Integration Testing,在我的应用程序中,我有两个集成测试,它们都执行以下操作: 设置应用程序上下文 创建测试数据库 用数据填充测试数据库 每次集成测试都需要时间来完成这三个初始步骤。我希望它们成为所有集成测试的基础。 有没有人有这方面的经验,可以用文章、工具、线程等为我指出正确的方向 谢谢你的帮助 /Richard你应该使用Junit5 正如文档所述,@BeforeAll用于表示在当前测试类中的所有测试之前应该执行带注释的方法 所以,通过这种方法,所有的数据库设置都可以为类执行一次,而不是为每个方法执行一次 您应
- 设置应用程序上下文
- 创建测试数据库
- 用数据填充测试数据库
所以,通过这种方法,所有的数据库设置都可以为类执行一次,而不是为每个方法执行一次 这里的一个选项是使用
@BeforeClass
方法创建一个基类,以便在需要重用它时,只需通过测试类扩展它即可
另一个选择是使用。它为您提供了在不同事件上连接代码的可能性,例如测试开始、测试完成等:
class TestListener extends RunListener {
@Override
public void testRunStarted(Description description) throws Exception {
// Called before any test has started
}
@Override
public void testRunFinished(Result result) throws Exception {
// Called when all tests have finished
}
@Override
public void testStarted(Description description) throws Exception {
}
@Override
public void testFinished(Description description) throws Exception {
}
@Override
public void testFailure(Failure failure) throws Exception {
}
@Override
public void testAssumptionFailure(Failure failure) {
}
@Override
public void testIgnored(Description description) throws Exception {
}
}
通过在插件配置中添加以下代码,您甚至可以使用Maven的surefire(单元测试)插件或故障保护插件(集成测试):
<properties>
<property>
<name>listener</name>
<value>com.your.awersome.TestListener</value>
</property>
</properties>
听众
com.your.awersome.TestListener
如果您只需要为一个项目执行此操作,此解决方案更灵活,但与第一个选项相比不太明显。这里的一个选项是使用
@BeforeClass
方法创建一个基类,因此只要您需要重用它,就可以通过测试类对其进行扩展
另一个选择是使用。它为您提供了在不同事件上连接代码的可能性,例如测试开始、测试完成等:
class TestListener extends RunListener {
@Override
public void testRunStarted(Description description) throws Exception {
// Called before any test has started
}
@Override
public void testRunFinished(Result result) throws Exception {
// Called when all tests have finished
}
@Override
public void testStarted(Description description) throws Exception {
}
@Override
public void testFinished(Description description) throws Exception {
}
@Override
public void testFailure(Failure failure) throws Exception {
}
@Override
public void testAssumptionFailure(Failure failure) {
}
@Override
public void testIgnored(Description description) throws Exception {
}
}
通过在插件配置中添加以下代码,您甚至可以使用Maven的surefire(单元测试)插件或故障保护插件(集成测试):
<properties>
<property>
<name>listener</name>
<value>com.your.awersome.TestListener</value>
</property>
</properties>
听众
com.your.awersome.TestListener
如果您只需要为一个项目使用此解决方案,则此解决方案更灵活,但与第一个选项相比,它不太明显。但是我有几个测试类,我希望为所有测试类都提供一个基础them@RichardSilvertass您可以使用
@beforeal
逻辑创建一个抽象类,然后直接继承您的类,你可以照@dehasi说的做,但我有几个测试类,我想为所有的测试类建立一个基础them@RichardSilvertass您可以使用@beforeal
逻辑创建一个抽象类,然后直接继承您的类即可,您可以按照@dehasi所说的做