2013-04-19 9 views
13

スカラテストとスポックスの違いは?それぞれの付加価値は何ですか?行動主導型開発(BDD)のためにより機敏ですか?あなたはその問題についていくつかの考えを分かち合うことができますか?ScalaTestとSpockの比較

私はBDDを開始したい、私は2つの間で1つを選びたいので、教育的な決定をしたいと思います。したがって、私は情報が最大限に得られます。特に、私がJavaプログラマであり、scalaが学習曲線を持つように見えることが重要です。

アドバイスやアイデアや経験からの復帰は大歓迎です。

感謝一言で言えば

答えて

23

は、私は、ScalaのコードをテストするためScalaTestを使用することをお勧めします、とテストJavaやGroovyのコードのスポックでしょう。 (もちろん、ScalaTestを使ってJavaコードをテストすることも可能です)。なぜ、両方のツールにあなたがより快適なショットとスティックを付けるのはなぜですか?

免責事項:私はSpockの作成者です。

+0

多くのお返事をいただきありがとうございます。私は両方を試してみます – MaatDeamon

+1

ピーターはとても寛大です。 Spockの機能は疑いの余地がないので、私にとってはすべてのテストフレームワークをほこりの中に残します。もしSpockがScalaのテストフレームワークとして実用的であれば、@Peterがコメントできるかどうかは素晴らしいことだと思います... Spockの機能はコンパイラに依存しているという古い投稿を読んでいます。 – Beezer

3

私はPeterの答えに同意しますが、私はこれについて私の見解を述べたいと思います。

ScalaTestとSpockは両方とも流暢なBDDテストを提供します。しかし、Spockの最大の特長は、複数のデータセットと期待される結果を持つ単一のシナリオを作成できることです。これはCucumber's Scenario Outlineに非常によく似ており、ユニットテストレベルでのみ実行されます。

これを実行する他のユニットテストフレームワーク/ライブラリが見つかりません。

要約すると、単一のテストシナリオで複数の入出力をテストする必要がある場合は、Spockを使用してください。それ以外の場合は、気楽に何かを自由に選択してください。

+0

https://github.com/junit-team/junit4/wiki/parameterized-tests完全性のために、jUnitは同じことをすることができます。ちょうど醜いです –

+0

私はそうは思わない、パラメータ化されたテストはユニットテストクラスごとの最大単一シナリオ(コンストラクタ上でパラメータ化された)。 パラメータ化されたフィールドでは、より多くの情報を得ることができますが、醜い情報しか得られません。 – Wins

+0

私は同意します。理論的には、jUnit _does_にはこの機能がありますが、醜さの要因は実際にはそこで使用するほど魅力的ではありません。 –

関連する問題