我有几种不同的特性实现,我想测试,测试只使用特征的方法签名,所以看起来我应该能够使用参数化测试。但是,specs2网站似乎没有描述编写参数化测试的简单方法。最接近的是如何“共享示例”,但您仍然需要编写测试和测试代码的每个组合,我希望能够指定:
一个。测试
B.要测试的类
可以单独指定,但会测试两者的笛卡尔积。
答案 0 :(得分:7)
另外请不要忘记您可以使用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 }
}
}
答案 1 :(得分:6)
写一些像:
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
}