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

scala - Mockito を使用して Specs2 で特定の文字列マッチャーを使用して呼び出しを検証するにはどうすればよいですか

これらの行に沿ったテストがあります:

これは問題なく動作しますが、最初の呼び出しが 2 番目の呼び出しとは異なるボディを渡すことを確認したいと思います。本体がかなり大きく、厳密な例で正確なマッチングを行いたくありません。私はこれを試しました:

それはMockitoに不平を言う:

私も試しました:

その結果:

このようなことが可能であるように思えますが、理解できないようです。洞察?

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

scala - Specs2 テストでモック ファイルを使用してファイルに書き込むことはできますか? もしそうなら、どのように?

Specs2 を使用してファイルへのシリアル化をテストすることに成功しましたが、テストでは実際のファイル (/tmp/ に書き込まれます) を使用します。テストのためだけにディスクに触れたくありません。モックファイルを使用する方法はありますか?

私は Mockito を使って私のoutfile(上記のコメントアウトされた行) をモックしようとしました。私の素朴な試みでは、を作成できますが、シリアル化しようとするとのMock for File, hashCode: 1583021903ようです。null

ある種の「スタブ」が欠けていると思いますが、解決策を提案するのに十分なほど類似した例が見つかりません。どんな助けでも大歓迎です。

0 投票する
4 に答える
6207 参照

scala - Scala での BDD - 醜い必要がありますか?

過去にPythonにレタスを使用しました。これは、仕様が外部のプレーン テキスト ファイルに記述されている単純な BDD フレームワークです。実装では正規表現を使用して各ステップを識別し、仕様の各文の再利用可能なコードを証明します。

specs2またはscalatestのいずれかでscalaを使用すると、実装と一緒に仕様を書くことを余儀なくされ、別のテストで実装を再利用することができなくなります(確かに、どこかの関数で実装できます)。仕様自体からのテスト実装 (私が以前行っていたもので、検証のためにクライアントに受け入れテストを提供していました)。

結論として、私は私の質問を提起します:クライアントによるテストの検証の重要性を考慮して、scala が外部ファイルからテストをロードし、テストの文がまだ実装されていない場合に例外を発生させ、すべての文が実装されているかどうかを正常にテストしますか?

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

scala - コードが specs2 でテスト モードで実行されているかどうかを確認するにはどうすればよいですか?

プログラムが specs2 を使用してアプリケーション内からテストされているかどうかを確認するにはどうすればよいですか? たとえば、Playでは次のように確認できますplay.Play.isTest()

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

sbt - spec2 の JVM メモリ設定

SBT は、 specs2Spray-testkitを使用した、より大きな受け入れスタイルのテストのいくつかでメモリ不足になり続けます。10 ギガまたは RAM が利用可能で、現在、MaxPermSize を 512m、Xms を 1024m、Xmx を 2g でSBT を ( SBT エクストラ スクリプトを使用して) 開始しています。

受け入れテストは、クライアントのビジネス プロセス全体を通じて特定の順序で実行されるため、受け入れテストを複数の小さなテストに分割することは容易ではありません。

自分の環境をより適切に構成する方法や、注意すべき落とし穴についてのアイデアをいただければ幸いです。

価値があるのは、UbuntuでOracle Javaを使用しており、プロジェクトではScala 2.10、sbt 0.12.2、spray 1.1-M7 with specs2 1.14を使用していることです。

テスト外でシステムを実行する場合、または小規模なテストを使用する場合、すべてが時計仕掛けのように実行されます。物事がうまくいかないのは、大規模なテストの間だけです。

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

scala - specs2 では、例外をスローする可能性がある関数から返された結果に対して条件付きでサブテストを実行します。

specs2 で、「親」テストが例外をスローせずに結果を返した場合にのみ実行されるサブテストのパターンを表現する適切な方法は何ですか?

functionmaybeGiveMeAThingがあり、 を返すか、Thing例外をスローすることができます。

呼び出しは次のようになります。

val thing: Thing = maybeGiveMeAThing("foo", "bar" "baz")

特定の入力セットをmaybeGiveMeAThing使用して、例外をスローせずに Thing を正常に返すことをテストし、返された Thing を使用して、さらにテストを行い、 にThing指定されたパラメーターに対して正しいものが返されることを確認しますmaybeGiveMeAThing

テストを現在セットアップしている方法では、への呼び出しがmaybeGiveMeAThing例外をスローすると、テスト スイート全体が中止されます。これは私が好むロジックです:

  • aThingが正常に返された場合は、thing の内容を分析する一連のサブテストに進みます
  • maybeGiveMeAThing例外 (すべての例外) がスローされた場合は、分析するサブテストをスキップしますが、残りのテストを続行します

私の既存のテストコードはおおよそ次のようになります。

...しかし、これは正しい方法とはかけ離れているように感じます。適切な方法は何ですか?
(できれば s の使用は避けたいと思いvarます。)

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

scala - IntelliJ + Scala+スペック+sbtプロジェクトをセットアップする方法は?

IntelliJ(12.1)をサポートするScala(2.10)のspecs2を使用して空のsbtプロジェクトをセットアップしようとしていますが、sbt compile空のプロジェクトディレクトリでこのエラーが発生します。

私のbuild.sbtファイルは次のようになります。

私は次のようにしてsbtをインストールしましたbrew install sbt

ブリューは私がsbt0.12を持っていると言いますが、私sbt --versionが得るとき:

$ PROJECT_DIR / projects / plugins.sbtにこれを入れて、少なくともIntelliJファイルを生成しようとしました。

しかし、私がやったときsbt gen-idea、私はこのエラーを受け取りました:

build.sbt誰かがScala2.10.1とsbt用のIntelliJ12.1ファイルを生成するサンプルを投稿できますか?

ここでプロジェクトをチェックインしました:https ://github.com/pathikrit/scalgos

私が間違っていることを教えてください???

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

json - Playframework Scala Specs2 JSON マッチャー

私はプレイを使用しています!フレームワークを使用して、Specs2 テストで JSON 応答メッセージを操作しようとしても成功しませんでした。

私がやろうとしているのは、以下の例のように JsValue でキーと値のペアをアサートすることです...しかし、マッチャーを正しく渡すことができません。

私が得るエラーは

あまり役に立ちません。私が見逃している単純なものだと思います(ScalaとPlayの両方に新しい)

スティーブ

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

scala - Specs2 でテスト/サンプル名にアクセスするには?

フィクスチャを共有するいくつかのテストがあり、テストを互いに分離したいと考えています。これを行う 1 つの方法は、test/example 名を「名前空間」の一部として (たとえば、ディレクトリ パスの一部として) 使用することです。

テスト/サンプル名は、それ自体でどのようにアクセスできますか?

例えば: