我有几个我想测试的特征的不同实现,并且测试只使用特征的方法签名,所以看起来我应该能够使用参数化测试。但是,specs2 网站似乎没有描述编写参数化测试的简单方法。最接近的是如何“共享示例”,但您仍然需要编写测试和测试代码的每个组合,我希望能够在其中指定:
A. 测试
B. 要测试的类
这可以单独指定,但将测试两者的笛卡尔积。
我有几个我想测试的特征的不同实现,并且测试只使用特征的方法签名,所以看起来我应该能够使用参数化测试。但是,specs2 网站似乎没有描述编写参数化测试的简单方法。最接近的是如何“共享示例”,但您仍然需要编写测试和测试代码的每个组合,我希望能够在其中指定:
A. 测试
B. 要测试的类
这可以单独指定,但将测试两者的笛卡尔积。
也不要忘记你可以使用 for 循环:
class MySpecification extends mutable.Specification {
Seq(new Foo, new Bar) foreach { tested =>
"it should do this" >> { tested must doThis }
"it should do that" >> { tested must doThat }
}
}
写一些类似的东西:
trait TraitTest extends Specification {
val thingWithTrait: TraitWithVariousImplementations
//TESTS GO HERE
}
class TestFoo extends TraitTest {
val thingWithTrait = new Foo
}
class TestBar extends TraitTest {
val thingWithTrait = new Bar
}