問題タブ [specs2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
specs2 - 置換なしの ScalaCheck 選択
Gen[A]
同じオブジェクトを 2 回返さない using ScalaCheckを作成するにはどうすればよいですか?
同じオブジェクトを繰り返し選択できるため、機能しません。
私は specs2 で変更可能な仕様を書いています。これを行いたい理由は、テスト対象のシステムの動作が、ある意味で各オブジェクトを一度だけ「使用」できるようにする必要があるためです。
編集:「同じ」とは、 に従って同じことを意味し==
、オブジェクトは実際には文字列であるため、毎回同じ文字列を作成することはできません。
scala - spec2 の失敗した Scalacheck プロパティから正確に失敗した一致を特定する
sbt
コマンドを使用して、から specs2 テスト スイートを実行していtest
ます。ScalaCheck プロパティが失敗すると、specs2 の一致が失敗したコードのファイル名と行番号が表示されるだけです。これは、頻繁に行う一般的なタイプのチェックを実行するユーティリティ メソッドである場合にはあまり役に立ちません。 . スタック トレースの方がよいでしょう。
sbt でコマンドを試しましたlast
が、探しているスタック トレースが表示されません。唯一のスタック トレースlast
表示は、次の一般的なものです。
また、java.util.logging プロパティ ファイルで FINEST ログ レベルを有効にしています。
今のところ、Eclipse デバッガーを使用してこの問題を回避していますが、場合によっては不必要に重いものになります。
scala - scala specs2 エラー: anon は scala.collection.immutable と等しくありません
次のテストを実行しています
次のエラーが表示されます
これは私がテストしようとしている方法です
私はこの醜いハックでそれを解決することができました
しかし、もっと良い方法があると確信しています...
- 編集 -
申し訳ありませんが、それは私の愚かな間違いでした (代わりに List("internet", "tecnologia") であるべきでした)
とにかく、エラーメッセージはかなり誤解を招くものでした。そのため、この質問をここに残しておきます...
scala - 遊ぶ!フレームワーク: 実行するテストをカスタマイズします
私は遊びを持っています!Scala アプリケーションには 2 を使用し、テストには Specs2 を使用しています。test
コマンドを使用してすべてのテストを実行したり、 test-only MyParticularSpec
.
私がやりたいのは、次のようなことを行うために、特定の仕様、または仕様内の単一のメソッドをマークすることです。
- 統合されていない (つまり、外部リソースにアクセスしない) すべてのテストを実行する
- 書き込みモードで外部リソースにアクセスしないすべてのテストを実行する (ただし、読み取りテストは引き続き実行する)
- 特定のテスト以外のすべてのテストを実行する
等々。
おそらくいくつかの注釈を追加することで、そのようなことができるはずだと思いますが、どうすればよいかわかりません。
一部のテストを選択的に実行し、他のテストを実行しないメカニズムはありますか?
編集私は使用時に自分自身に答えましたtest-only
。test
それでも、コマンド ライン オプションはこのタスクでは機能しません。sbt ガイドに従って、次のような追加の sbt 構成を作成しようとしました
これは、オプションなしで引数を渡す場合、たとえば put の場合に機能しますTest.Argument("plan")
。しかし、より複雑な引数を渡す方法を見つけることができませんでした。私が試してみました
そしておそらくもっと。正しい構文が何であるかはまだわかりません。
sbt から specs2 にオプション付きの引数を渡す方法を知っている人はいますか?
scala - Specs2から呼び出されたときのアクションでのClassCastException
私はplay_2.9.1-2.0.3でアプリケーションを構築し、 specs2_2.9.1-1.7.1(playにバンドルされています)でテストしています。次のようなアクションがあります。
これは、curlからメッセージを送信すると期待どおりに機能しますが、specs2テストで次の例外が発生します。
ここで、16行目は次のとおりです。
テストの関連部分は次のとおりです。
createPoll
defを次のように変更した場合:def createPoll() = Action(parse.tolerantText) {
次に、specs2テストから機能させることができます。
誰かが私が間違っていることを知っていますか?理想的には、parse.jsonボディパーサーを使用したいのですが、テストのためにカールするだけでなく、スペックを使用できるようにしたいのです。ありがとう
scala - play フレームワーク 2: json 文字列を本文としてリクエストをテストする
私は次のアクションを持っています
そして、私はそれをテストしたいと思います
Web サービスは、次のように curl で問題なく動作します。
新しいリソースを正しく返す
私はそれをテストしようとしています
しかし、次のエラーが発生します。
この質問に関するアドバイスに従いました: Play 2 - Scala FakeRequest withJsonBody
何か不足していますか?
--
Kim Stebel ソリューションは問題なく機能しましたが、次のように withJsonBody で試しました。
次のエラーが表示されます。
何か案が?
scala - 仕様2:ハムクレストマッチャーを使用する
Javaで記述されたドメインオブジェクト用のさまざまなHamcrestマッチャーがあります。私は今Scalaに移動しており、specs2テストのコンテキストでこれらの既存のマッチャーを再利用したいと思います。
クラスFooのHamcrestマッチャーを考えると:
このように使用できるようにしたいと思います。
等々。
Specs2には反対の、Matcher [T]トレイトのorg.hamcrest.Matcherへのアダプターがあるようですが、私はその逆を探しています。
何か案は?
scala - Specs2に依存関係を追加すると、Mockitoを使用したScalaTestテストの一部が失敗するのはなぜですか?
最近、Specs2への依存関係をプロジェクトに追加しましたが、ScalaTestとMockitoで作成された既存のテストの一部が失敗したことに気付きました。Specs2が削除されると、これらのテストは再び合格しました。なぜこれが起こるのですか?
失敗したテストはすべてMockitoを使用し、すべてが2つの異なるパラメーターを使用してモックメソッドをセットアップしました。モックへの呼び出しの1つは、設定された値を返しません。以下の例は失敗します。さらなる要件は、タイプがFunction1である(またはapplyメソッドを持っている)必要があることでした。
出力:
scala - Specs2 がこれらの「順次」テストをランダムな順序で実行するのはなぜですか?
Specs からSpecs2に移行しようとしている古いデータベース テスト スイートがあります。ただし、Specs2 は (私の観点からは) 奇妙な順序でテストを実行します。これにより、データベースの状態が変更され、特定のコードが 2 回実行されるため、テストが中断されます。
テストの簡略化されたバージョンを以下に示します。私が理解している限り、テストは次の順序で実行する必要があります: (シーケンシャルを指定したため):
! 222
, ! 333
,! 444
しかし、実際には、次の順序で実行されます:
! 333
, ! 222
,! 444
テストは次のとおりです。
すべてのprintln
出力は次のとおりです。
そして私の2つの質問:
! 222
最初に実行されないのはなぜですか?sssstart eeeend
2回出力される可能性はありますか?仕様はオブジェクトであり、2 回作成されていませんか?
奇妙なことに、テストから副作用を取り除くと、つまりvariableNを削除してテスト本体を置き換えると、テストok
は正しい順序で実行されます。
バージョンの詳細: これらのテストは、Paly Framework 2.1-SNAPSHOT (2012 年 10 月 28 日のバージョン 203df0e) と Scala 2.10.0-RC1 で実行しています。Play にバンドルされている Specs2 のバージョンはバージョン 1.12 であると思います。inline
メソッドが使用可能であり、1.12(-SNAPSHOT) で追加されたためです。https://github.com/etorreborre/specs2/issues/87を参照し、それ以降はありませんSpecs2 バージョン。
(テストを完全に書き直す必要があると思われる場合は、代わりにこの質問を見てください:相互に依存するテストを使用して Specs2 データベース テストを設計する方法は? )
scala - 相互に依存するテストを使用して、Specs2 データベース テストをどのように設計しますか?
以前のテストの結果に依存する多くのテストを使用して、 Specs2テストを設計するための好ましい方法はありますか?
以下に、現在のテスト スイートを示します。var
テストフラグメントの間にある s は好きではありません。ただし、一部のテストでは、後続のテストで再利用される ID 番号が生成されるため、それらは「必要」です。
代わりに ID 番号を Specs2 コンテキストに保存するか、すべての変更可能な状態を保持する別のオブジェクトを作成する必要がありますか? そして、仕様オブジェクトにテスト フラグメントのみを配置しますか? それとももっと良いアプローチがありますか?
テストが失敗した場合、同じ深さで残りのテストをキャンセルしたいと思います。テストフラグメントを相互に依存させることはできますか? (変更可能なテストを使用するかorSkipを使用して、単一のテスト フラグメント内の残りのマッチャーをキャンセルできることはわかっていますが、フラグメント全体をキャンセルするにはどうすればよいでしょうか?)
.