問題タブ [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 に答える
1193 参照

unit-testing - Specs2 - scala での等価性テスト

Specs2 を使用してしばらくの間コードをテストしてきましたが、テストでは、あるタイプの 2 つのオブジェクトが正しく比較されることを確認したいと考えていました。

このテストを実行すると、エラーが発生しました

私のクラスには比較のためのメソッドがなかったので、これは合理的に思えました。そこで、思いついたことをいくつか試してみました。Orderedさまざまな比較方法を実装して提供することです。

しかし、私はまだ同じエラーが発生し続けます。equalTo マッチャーがどのように機能するかを確認するために specs2 のソースを読み込もうとしましたが、その後はあまりよくわかりませんでした。

(ストック)specs2マッチャーが平等を取得するためにクラスを変更する方法はありますか?

BitField32 は設計上ケース クラスではありません。可変にしたいのです。

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

scala - SBTで単一のSpec2仕様のみを実行するにはどうすればよいですか?

SBTプロジェクトで2つのテストが定義されている場合:

次にtest、SBTの内部から実行すると、これらの両方のテストが実行されます。これらのテストの1つだけを実行する最も簡単な方法は何ですか?

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

scala - fromJson(toJson(date)) を介して specs2 と日付を一致させる方法

私は次の問題で立ち往生しています: json への変換と json からの変換が対称であることを主張する specs2 仕様を書きたいです。ただし、joda 日時の日付でエラーが発生します。

これは、問題を示す最小限の仕様です

2 番目のテストで date と date2 を比較するにはどうすればよいですか? それらは同じですが、specs2はそれを認識していないようです:(

- - 編集

date.getClass.getCanonicalName を使用して実行時に型を「手動で」検査すると、期待どおりに org.joda.time.Datetime が返されます

DateTime#isEqual を使用するとある程度は機能しますが、流暢なマッチャーの利点と、それらがもたらす有用なエラー メッセージを失います。さらに、私が実際に比較しようとしているのは、日付自体ではなく、たまたま日付を含むケース クラス インスタンスです。

使用する

と同じエラーが発生します===

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

scala - Scala/Play 2 - サンプル specs2 テストを実行できない

私は OS X 上の Scala で Play Framework v2.04 を使用しています (Homebrew 経由でインストール)。すべてが期待どおりに機能しますが、Play Web サイトのドキュメントから基本的なHello Worldサンプル specs2 テストを実行できないようです。これは私の/app/test/example.scalaファイル内のコードです:

ただし、実行するplay testと、次のエラーが表示されます。

私の知る限り、テスト オブジェクトはplay.api パッケージのメンバーである必要があります ( API リファレンス ドキュメントによると)。

これを解決する方法についてのアイデアはありますか?

ありがとう!

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

scala - Specs2および@Before/@After-likeメソッド

次のようなコードが与えられます:

「anonymous」と「signinOAuth」の前後で同じ前後のコードが実行され、テストが失敗した場合でも「after」メソッドが実行されるようにするにはどうすればよいですか?

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

unit-testing - specs2: 複数のマッチャー式 (ユニット仕様)

1 つの Matcher フラグメントで複数の式をチェックするにはどうすればよいですか?

例えば:

エラーが出る

エリックはこのコメントで「古典的な」型推論の問題を参照していますが、答えが見つかりませんでした。

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

scala - Specs2とのパターンマッチングの使用とScalaでのプレイ

Scala /Play2.0とSpecsに単純な問題があります。

これは私のテストです

次の理由により、これはコンパイルされません。

したがって、Im think status(result)matchはAnyに評価されているため、エラーになります。戻り値が偽のデフォルトのケースがある場合、その結果タイプがResultであることをどのように指定する必要がありますか?

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

elasticsearch - テスト用に埋め込みElasticSearchインスタンスを実行する方法

単体テストの目的でElasticSearchインスタンスが埋め込まれているセットアップで作業していますが、sbt()を使用してテストを継続的に実行するとシステム~test-only <my-test>がフリーズして火事で停止するまで、システムがますます不安定になります。

私が適切に仕事をするのに苦労していることは次のとおりです。

  • 隔離
  • 掃除
  • シャットダウン

これを設定する適切な方法は何ですか(ソリューションはspecs2を使用することが望ましいですが、Javaベースも歓迎します)?

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

scala - Specs2 - 並行環境ではユニット仕様スタイルを使用しないでください

Specs2 は、Acceptance 仕様 (必要に応じて Unit 仕様も) を扱う際に機能的なスタイルを促進します。

古いスタイル (変更可能なスタイル) を使用するリスクは、仕様Specs2 の哲学で言及されており、潜在的な望ましくない副作用に関係しています。

知っておくべき重要事項は次のとおりです。

副作用は仕様フラグメントを構築するためにのみ使用され、変数を変更することによって、失敗が発生するとすぐに例の実行を短絡するためにも使用されます (例外をスローすることによって)。例の本体でフラグメントをビルドしたり、同じ仕様を並行して実行したりすると、空が落ちるはずです。「コンテキスト」管理は、ケース クラスまたはトレイトで行われます (org.specs2.examples.MutableSpec を参照)。

同じ仕様を 2 回以上同時に実行したとしても、各仕様は他の仕様 (分離されたクラスのインスタンス) とは異なるため、同じ仕様を同時に実行する方法がわかりません。

確かに、specFragments(可変変数):

(スカラの意味で=>シングルトン)または他の共有のものではなく、a trait呼び出されたで宣言されているため、各のインスタンスのローカル変数です。FragmentBuilderobjectspecFragmentsSpecification

では、どのようなシナリオで同時実行メカニズムが危険にさらされる可能性があるのでしょうか?

Specs2 の機能的スタイルの利点を証明する真のシナリオ (愚かではない) を実際には理解していません。

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

neo4j - Specs2/Neo4j-Specs2でのImpermanentGraphDatabaseの使用

Specs2を使用して検収試験を書いています。

ImpermanentGraphDatabaseメモリ内のNeo4jグラフを作成するために使用したいと思います。統合テストに最適です。

Neo4j用にSpring-Dataをセットアップしましたが、Springファイルの構成には次のものが含まれています。

各Specを分離するために、オプションdestroy-method="shutdown"が通常ではなくSpecs2を考慮に入れているのではないかと思います。JUnitexample

要約すると、それぞれexampleに独自のメモリ内グラフインスタンスがあるのでしょうか、それともすべてのインスタンスで共有されるのでしょうか。

specs2は、SpecificationこれらすべてのSpecの例の実行に同じインスタンスを使用するため、適用できないと思います。実際、Specs2の機能スタイルでis()は、1つのインスタンスですべての例をエングロビンと呼ばれるのはメソッドだけです。

BeforeExampleまた、それぞれのデータベースをクリーンアップするためにトレイトを実装しようとしましexampleたが... Gived / Then / Whenスタイルでは、全体が一意であると見なされているようですexample。確かに、セパレーターは^従来のの代わりにあり!、後者は1つを表しexampleます。

ImpermanentGraphDatabse各ステップ(GivenまたはWhenまたはThenステップ)の前にインメモリデータベース()をクリーンアップしたい