4

テストしたいトレイトのいくつかの異なる実装があり、テストはトレイトのメソッド シグネチャのみを使用するため、パラメータ化されたテストを使用できるはずです。ただし、specs2 の Web サイトには、パラメーター化されたテストを作成する簡単な方法が記載されていないようです。最も近いのは「例を共有する」方法ですが、指定できるようにするために、テストとテスト済みコードのすべての組み合わせを記述する必要があります。

A. テスト
B. テストするクラス

これは個別に指定できますが、2 つのデカルト積をテストします。

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 に答える