問題タブ [hspec]

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 投票する
2 に答える
480 参照

haskell - Haskell - 関数が呼び出されたことをアサートする

関数が Haskell HSpec で呼び出されたことを確認することは可能ですか?

データを変換する2 つの関数foobarがあると仮定します。

そして 、2 番目の引数として「f」または「b」を受け取ったかどうかに応じて、スタッフにfooまたはbarを適用し、適用された関数の結果を返す関数があります。

そして、私のテストでは、各関数 foo と bar を包括的にテストしましたが、その影響をapplyでテストしたくありません。

関数 foo または bar が呼び出されたことを確認することはできますか? 適用するために渡される引数に応じて?

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

haskell - Haskell のエラーを生成する Cabal テスト

私のMain.hsファイルはコマンドライン引数を取ります:

私がテストしようとするときを除いて、これはうまくいきます。私のテストファイルは

それでも私が実行するcabal testと、それはまだ私に与えます

argsinへの呼び出しが原因で失敗していると確信しています。Main.main実行可能ファイル自体が正常に動作し、他の場所で使用されていないことがわかり!!ます。

テストを実行するにはどうすればよいですか?

編集: でパターン マッチングを使用Main.hs:

そしてエラーは今です

EDIT 2grade.cabal :私のファイル全体

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

haskell - 特定のデータ フィールドの値を気にしないことをどのように簡単に表現できますか?

私はパーサーのテストを書いていましたが、これは最善ではないかもしれませんが、これまでのところうまくいきました。テストは、次のように、すべてのコード ブロックに対して完全に定義された AST 表現を想定しています。

しかし、より複雑なケースに移ると、より「あいまいな」検証が必要になりました。

この例ではundefined、解析結果と比較したくないフィールドを示しています (文字列リテラルのソース位置です)。現在、私が見ている唯一の修正方法は、コードを書き直して のshouldSatisfy代わりに使用するshouldBeことです。他の解決策が見つからない場合は、これを行う必要があります。

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

haskell - HSpec と QuickCheck を使用して Data.Monoid プロパティを確認する

HSpec と QuickCheck を使用して、モノイド (結合性と同一性要素) のプロパティを検証しようとしています。特定のインスタンスを検証するつもりですが、ほとんどのコードはポリモーフィックに保ちたいと考えています。これは私が数時間後に思いついたものです:

私が持ちたいのはポリモーフィックです

実際の Monoid インスタンス (Sum、Product) とタイプ (Int、Double) を後で指定します。問題は、型チェックを行わないことです。私は得続けます

ポリモーフィック バージョンのモノイドを Arbitrary、Eq、および Show に制約する必要があることはわかっていますが、その方法がわかりません。

問題は、モノイドの仕様をポリモーフィックな方法で表現し、コードの重複を回避する方法です。

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

unit-testing - 単体テストのメイン関数: インポート自体のエラー

(小さな) 実行可能ファイルを作成しようとしています。Cabal を使用してセットアップし、HSpec を使用して単体テストを行いました。ほとんどすべてのコードは別のモジュールにありLibrary、 の本体を含めて、関数mainとしてメイン モジュールにインポートします。run

関数はmain可能な限り短くなりましたが、実行関数と等しいことを確認する、または他の方法でテストするなど、テストを作成する方法はありますか? 問題は、私の仕様ファイルが別のMainモジュールを定義していて、別のモジュールから何もインポートできない (または少なくとも方法がわからない) ように見えることMainです。

たとえば、次のことを試してみると

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

メイン関数をテストする方法はありますか?

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

haskell - Cabal から HSpec へのオプションの提供

hspecを始めようとしています。私は QuickCheck を使用して動作するケースを持っていますが、実行時にもう少し詳細が必要cabal testです。hspec からこの記事を見つけました。実行可能ファイルの実行時に、より詳細な制御を提供する方法が説明されています。現在、haskell パッケージの初期化に使用hiしているため、cabal テスト スイートは次のようになります。

私の推測では、「デフォルトのコマンドライン引数」のようなものですが、それは正しくありません。hspec スイートに引数を指定するにはどうすればよいですか?

また、これは重要かもしれません。hiテスト スイートを分割して、次のコンテンツのみが含まれるようにしSpec.hsます。

ただし、すべてのテストとコードは にありtest/MainSpec.hs、これにより と がエクスポートmainされspecます。

0 投票する
0 に答える
162 参照

unit-testing - Yesod で hspec テスト ケースにより多くの値を渡す

私は現在のテスト フィクスチャを強化するために、(タイプのApp) ファンデーション以上のものを hspec テスト ケースに渡しています。IO (App, Text)以下の例では、直接返すのではなく、追加の Text 値をタプル内に (as として) 渡しています。IO App

などのinnerSpec関数を使用して通常の Yesod テストを実行できるように正しく構造化する方法がわかりませんが、これらの仕様で値を読み取って使用できるようにすることもできません。poststatusIsText

Yesod がなくても、次のようなことができます。

それは問題なくビルドされますが、Yesod がミックスに入るとすぐに型を正しく取得できません。アドバイス?