参数化的jUnit测试,无需更改跑步者
有没有一种干净的方式来运行参数化的jUnit 4测试而不更改跑步者,即不使用@RunWith(Parameterized.class)
?
我有单元测试需要一个特殊的跑步者,我不能用Parameterized
替换这个。 也许有某种“跑步者链”,所以我可以在同一时间跑步者? (只是一个疯狂的猜测......)
org.junit.runners.Parameterized
是由org.junit.internal.builders.AnnotatedBuilder
通过反射机制创建的。 也许你可以扩展Parameterized
作为你自己的Runner:@RunWith( MyParameterized.class )。
我已经发布了一个包含两个运行程序的框架,它们可以在测试类上强制实现参数化,同时允许您为实际的测试执行链接任意的第三方运行程序。
该框架是CallbackParams - (http://callbackparams.org) - 这些是跑步者:
通过使用框架注释...
...你可以用这种方式指定一个任意的第三方跑步者:
@RunWith(CallbackParamsRunner.class) // or @RunWith(BddRunner.class)
@WrappedRunner(YourSpecialRunner.class)
public class YourTest {
...
但是,使用CallbackParams进行参数化测试与传统的测试参数化方法有很大不同。 在本教程文章中,使用BddRunner在教程文章结尾解释了原因。
对于你的第一个CallbackParams测试,你可能更喜欢BddRunner,因为它需要的锅炉板材少,但是当你开始在不同的测试类之间重用参数值时,你可能最好使用CallbackParamsRunner,这需要更强的类型检查。
另外 - 使用BddRunner时,您不能有任何@测试方法。 相反,您必须使用框架注释@Given,@When和@Then。 该要求有时与第三方跑步者的要求相冲突,但通常效果不错。
祝你好运!
链接地址: http://www.djcxy.com/p/49405.html上一篇: Parameterized jUnit test without changing runner
下一篇: disable the uitableview highlighting but allow the selection of individual cells