TestNgとJavaでは、DataProviderを使用して複数のテストケースを実行できます。これは別々のテストとして実行されます。 ScalaTestやSpecs/Specs2のアナログはありますか?複数のテストケースを持つスカラテストまたは仕様2
9
A
答えて
24
ScalaTestとspecs2の両方で、データでパラメータ化するために、実行時にテストケースを作成するのは簡単です。ここでspecs2との例を示します
class BasketSpecification extends Specification {
"a basket must contain fruits" >> {
Seq(apple, banana, orange) foreach { fruit =>
("it contains: " + fruit) >> {
basket must contain(fruit)
}
}
}
}
その後、出力は次のようになります。次の仕様のに対し
A basket must contain fruits
+ it contains: apple
+ it contains: banana
+ it contains: orange
:
A basket must contain fruits
+ it contains: apple
x it contains: cake
'basket' does not contain 'cake'
+ it contains: orange
9
:
class BasketSpecification extends Specification {
"a basket must contain fruits" >> {
Seq(apple, cake, orange) foreach { fruit =>
("it contains: " + fruit) >> {
basket must contain(fruit)
}
}
}
}
のようなものを出力しますそのコンセプトは「シャー」同じテストコードがTestNGのDataProviderアプローチの「データ」である複数のフィクスチャによって「共有」されているため、ScalaTestの「ed tests」を使用しています。テストを関数として表現するScalaTestの各スタイル特性についてこれを行う方法があります。ここではWordSpecのための例です:あなたはその代わりに、単に異なるデータポイントで同じテストコードを登録するためにforループを使用することができます
http://www.scalatest.org/scaladoc-1.6.1/#[email protected]
。その場合には
http://groups.google.com/group/scalatest-users/browse_thread/thread/7337628407b48064#
ザループコードのように見えた:これはここにある電子メールの議論の中で思いついた
for (browser <- List("IE", "Chrome", "Firefox")) {
test(browser + ": test one") { driver =>
info("Testing using " + driver)
}
test(browser + ": test two") { driver =>
info("Testing using " + driver)
}
test(browser + ": test three") { driver =>
info("Testing using " + driver)
}
test(browser + ": test four") { driver =>
info("Testing using " + driver)
}
test(browser + ": test five") { driver =>
info("Testing using " + driver)
}
}
}
これは実際には、各ブラウザのドライバーのための15回のテスト、5つのテストを登録します。これは私があなたが何をしているのかと信じています。
関連する問題
- 1. .NET GC仕様と複数のスレッド
- 2. CSS:複数のインポート、または複数のスタイルシートを持つマスタースタイルシート?
- 3. RSpecでパラメータ化された仕様を持つことは可能ですか?
- 4. RSpec 2の生成仕様の理解
- 5. RSpec 2ビュー仕様のassignの使用
- 6. 複数のインデックスを持つDoctrine 2
- 7. Doctrine 2複数のjoinColumnを持つManyToOne
- 8. 複数の同様のサブ選択を持つmysql updateコマンド
- 9. のJS関数は、DOCTYPE仕様
- 10. フォーマルメソッド - 代数的仕様
- 11. JPA仕様の複雑なクエリ
- 12. 複数のパラメータを持つ1つのメソッドまたは1つのパラメータを持つ複数のメソッド?
- 13. Robotiumを使用した1つのプロジェクトの複数のテスト/テストケース
- 14. スワッガー同じJson仕様の複数のホスト
- 15. Spring仕様の基準複数の結合?どうやって?
- 16. htmlの仕様
- 17. Selenium Webdriverを使用して各テストケース内に複数のシナリオを持つテストケースを自動化する方法
- 18. または2つの引数を持つ構文(||; &&)
- 19. 1つまたは複数のユーザーロールを持つナビゲーションアイテムの選択
- 20. 複数のプロパティを持つ2つの配列をフィルタリングする
- 21. リアルタイムJava仕様
- 22. MVC仕様
- 23. ADT仕様
- 24. UIActionSheet UI仕様
- 25. PHP ws- *仕様
- 26. インポート仕様vba
- 27. アセンブリパブリッシャー仕様
- 28. HTTPアーカイブ仕様
- 29. WordPress WXR仕様
- 30. CodeIgniter 2 +複数のデータベース接続を持つDoctrine 2
質問が混乱しています。あなたは何を意味するのかの例を提供してください。 –