4

我有几个我想测试的特征的不同实现,并且测试只使用特征的方法签名,所以看起来我应该能够使用参数化测试。但是,specs2 网站似乎没有描述编写参数化测试的简单方法。最接近的是如何“共享示例”,但您仍然需要编写测试和测试代码的每个组合,我希望能够在其中指定:

A. 测试
B. 要测试的类

这可以单独指定,但将测试两者的笛卡尔积。

4

2 回答 2

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 }
  }
}
于 2012-07-20T00:34:58.753 回答
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
}
于 2012-07-17T16:08:26.143 回答