1.概述
在这篇简短的教程中,我们将要实现非静态方法@Beforeall.和@毕竟注释可用JUNIT5.。
2。@Beforeall.和@毕竟在非静态方法中
虽然单位测试,我们可能偶尔会想使用@Beforeall.和@毕竟在非静态设置和拆除方法中 - 例如,在@中嵌套测试类或接口默认方法。
让我们用这个测试课@Beforeall.和@毕竟方法是非静态:
公共类BeForeanDafterAnnotationsunittest {String输入;结果长期;@beforeall公共void setup(){input =“77”;@Afterall公共void indown(){input = null;结果= null;@test公共vod whinconvertstringtolong_thenresultshouldbelong(){结果= long.valueof(输入);断言.Astequals(77L,结果);}}
如果我们运行上面的代码,它将抛出异常:
org.junit.platform.commons.junitexception:...
我们现在看看我们如何避免这种情况。
3.@testinstance.注解
我们将使用它@testinstance.注释配置测试的生命周期。如果我们没有在我们的测试类上声明它,则生命周期模式将是per_method.默认。所以,防止我们的测试课扔了Junitexception,我们需要用它注释@testinstance(testinstance。lifecycle.per_class)。
让我们重做我们的测试课并添加@testinstance(testinstance。lifecycle.per_class):
@testinstance(testinstance.lifecycle.per_class)public类beforeandafterannotationsunittest {String输入;结果长期;@beforeall公共void setup(){input =“77”;@Afterall公共void indown(){input = null;结果= null;@test公共vod whinconvertstringtolong_thenresultshouldbelong(){结果= long.valueof(输入);断言.Astequals(77L,结果);}}
在这种情况下,我们的测试成功运行。
4。结论
在这简短的文章中,我们学会了如何使用@Beforeall.和@毕竟在非静态方法中。首先,我们从一个简单的非静态示例开始,以显示如果我们不包含会发生什么@testinstance.注解。然后,我们向我们的测试注释了@testinstance(testinstance.lifecycle.per_class)防止扔掉Junitexception.。
一如既往地,所有这些示例的实现是在github上。