問題タブ [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.

0 投票する
1 に答える
190 参照

specs2 - 置換なしの ScalaCheck 選択

Gen[A]同じオブジェクトを 2 回返さない using ScalaCheckを作成するにはどうすればよいですか?

同じオブジェクトを繰り返し選択できるため、機能しません。

私は specs2 で変更可能な仕様を書いています。これを行いたい理由は、テスト対象のシステムの動作が、ある意味で各オブジェクトを一度だけ「使用」できるようにする必要があるためです。

編集:「同じ」とは、 に従って同じことを意味し==、オブジェクトは実際には文字列であるため、毎回同じ文字列を作成することはできません。

0 投票する
2 に答える
455 参照

scala - spec2 の失敗した Scalacheck プロパティから正確に失敗した一致を特定する

sbtコマンドを使用して、から specs2 テスト スイートを実行していtestます。ScalaCheck プロパティが失敗すると、specs2 の一致が失敗したコードのファイル名と行番号が表示されるだけです。これは、頻繁に行う一般的なタイプのチェックを実行するユーティリティ メソッドである場合にはあまり役に立ちません。 . スタック トレースの方がよいでしょう。

sbt でコマンドを試しましたlastが、探しているスタック トレースが表示されません。唯一のスタック トレースlast表示は、次の一般的なものです。

また、java.util.logging プロパティ ファイルで FINEST ログ レベルを有効にしています。

今のところ、Eclipse デバッガーを使用してこの問題を回避していますが、場合によっては不必要に重いものになります。

0 投票する
1 に答える
410 参照

scala - scala specs2 エラー: anon は scala.collection.immutable と等しくありません

次のテストを実行しています

次のエラーが表示されます

これは私がテストしようとしている方法です

私はこの醜いハックでそれを解決することができました

しかし、もっと良い方法があると確信しています...

- 編集 -

申し訳ありませんが、それは私の愚かな間違いでした (代わりに List("internet", "tecnologia") であるべきでした)

とにかく、エラーメッセージはかなり誤解を招くものでした。そのため、この質問をここに残しておきます...

0 投票する
5 に答える
4566 参照

scala - 遊ぶ!フレームワーク: 実行するテストをカスタマイズします

私は遊びを持っています!Scala アプリケーションには 2 を使用し、テストには Specs2 を使用しています。testコマンドを使用してすべてのテストを実行したり、 test-only MyParticularSpec.

私がやりたいのは、次のようなことを行うために、特定の仕様、または仕様内の単一のメソッドをマークすることです。

  • 統合されていない (つまり、外部リソースにアクセスしない) すべてのテストを実行する
  • 書き込みモードで外部リソースにアクセスしないすべてのテストを実行する (ただし、読み取りテストは引き続き実行する)
  • 特定のテスト以外のすべてのテストを実行する

等々。

おそらくいくつかの注釈を追加することで、そのようなことができるはずだと思いますが、どうすればよいかわかりません。

一部のテストを選択的に実行し、他のテストを実行しないメカニズムはありますか?

編集私は使用時に自分自身に答えましたtest-onlytestそれでも、コマンド ライン オプションはこのタスクでは機能しません。sbt ガイドに従って、次のような追加の sbt 構成を作成しようとしました

これは、オプションなしで引数を渡す場合、たとえば put の場合に機能しますTest.Argument("plan")。しかし、より複雑な引数を渡す方法を見つけることができませんでした。私が試してみました

そしておそらくもっと。正しい構文が何であるかはまだわかりません。

sbt から specs2 にオプション付きの引数を渡す方法を知っている人はいますか?

0 投票する
1 に答える
408 参照

scala - Specs2から呼び出されたときのアクションでのClassCastException

私はplay_2.9.1-2.0.3でアプリケーションを構築し、 specs2_2.9.1-1.7.1(playにバンドルされています)でテストしています。次のようなアクションがあります。

これは、curlからメッセージを送信すると期待どおりに機能しますが、specs2テストで次の例外が発生します。

ここで、16行目は次のとおりです。

テストの関連部分は次のとおりです。

createPolldefを次のように変更した場合:def createPoll() = Action(parse.tolerantText) {

次に、specs2テストから機能させることができます。

誰かが私が間違っていることを知っていますか?理想的には、parse.jsonボディパーサーを使用したいのですが、テストのためにカールするだけでなく、スペックを使用できるようにしたいのです。ありがとう

0 投票する
1 に答える
8682 参照

scala - play フレームワーク 2: json 文字列を本文としてリクエストをテストする

私は次のアクションを持っています

そして、私はそれをテストしたいと思います

Web サービスは、次のように curl で問題なく動作します。

新しいリソースを正しく返す

私はそれをテストしようとしています

しかし、次のエラーが発生します。

この質問に関するアドバイスに従いました: Play 2 - Scala FakeRequest withJsonBody

何か不足していますか?

--

Kim Stebel ソリューションは問題なく機能しましたが、次のように withJsonBody で試しました。

次のエラーが表示されます。

何か案が?

0 投票する
1 に答える
927 参照

scala - 仕様2:ハムクレストマッチャーを使用する

Javaで記述されたドメインオブジェクト用のさまざまなHamcrestマッチャーがあります。私は今Scalaに移動しており、specs2テストのコンテキストでこれらの既存のマッチャーを再利用したいと思います。

クラスFooのHamcrestマッチャーを考えると:

このように使用できるようにしたいと思います。

等々。

Specs2には反対の、Matcher [T]トレイトのorg.hamcrest.Matcherへのアダプターがあるようですが、私はその逆を探しています。

何か案は?

0 投票する
1 に答える
1844 参照

scala - Specs2に依存関係を追加すると、Mockitoを使用したScalaTestテストの一部が失敗するのはなぜですか?

最近、Specs2への依存関係をプロジェクトに追加しましたが、ScalaTestとMockitoで作成された既存のテストの一部が失敗したことに気付きました。Specs2が削除されると、これらのテストは再び合格しました。なぜこれが起こるのですか?

失敗したテストはすべてMockitoを使用し、すべてが2つの異なるパラメーターを使用してモックメソッドをセットアップしました。モックへの呼び出しの1つは、設定された値を返しません。以下の例は失敗します。さらなる要件は、タイプがFunction1である(またはapplyメソッドを持っている)必要があることでした。

出力:

0 投票する
2 に答える
3786 参照

scala - Specs2 がこれらの「順次」テストをランダムな順序で実行するのはなぜですか?

Specs からSpecs2に移行しようとしている古いデータベース テスト スイートがあります。ただし、Specs2 は (私の観点からは) 奇妙な順序でテストを実行します。これにより、データベースの状態が変更され、特定のコードが 2 回実行されるため、テストが中断されます。

テストの簡略化されたバージョンを以下に示します。私が理解している限り、テストは次の順序で実行する必要があります: (シーケンシャルを指定したため):
! 222, ! 333,! 444
しかし、実際には、次の順序で実行されます:
! 333, ! 222,! 444

テストは次のとおりです。

すべてのprintln出力は次のとおりです。

そして私の2つの質問:

  1. ! 222最初に実行されないのはなぜですか?

  2. sssstart eeeend2回出力される可能性はありますか?仕様はオブジェクトであり、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 データベース テストを設計する方法は? )

0 投票する
3 に答える
1705 参照

scala - 相互に依存するテストを使用して、Specs2 データベース テストをどのように設計しますか?

以前のテストの結果に依存する多くのテストを使用して、 Specs2テストを設計するための好ましい方法はありますか?

以下に、現在のテスト スイートを示します。varテストフラグメントの間にある s は好きではありません。ただし、一部のテストでは、後続のテストで再利用される ID 番号が生成されるため、それらは「必要」です。

  1. 代わりに ID 番号を Specs2 コンテキストに保存するか、すべての変更可能な状態を保持する別のオブジェクトを作成する必要がありますか? そして、仕様オブジェクトにテスト フラグメントのみを配置しますか? それとももっと良いアプローチがありますか?

  2. テストが失敗した場合、同じ深さで残りのテストをキャンセルしたいと思います。テストフラグメントを相互に依存させることはできますか? (変更可能なテストを使用するかorSkipを使用して、単一のテスト フラグメント内の残りのマッチャーをキャンセルできることはわかっていますが、フラグメント全体をキャンセルするにはどうすればよいでしょうか?)

.