問題タブ [hunit]
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.
haskell - アサーションエラーでHUnitに改行を出力するにはどうすればよいですか?
私のHUnitテストのいくつかは、かなり大きな構造をと比較しますassertEqual
。HUnitは文字列を1行に出力するため、これらのエラーを見つけるのは困難です。私がやりたいのはText.Groom
、これらの構造をきれいに印刷するために使用することですが、文字列を改行に渡すと、assertEqual
改行が表示される\n
ため、出力がさらに読みにくくなります。
特に、 HUnitを作成するにassertEqual
は、手入れの行き届いた文字列を改行で印刷するにはどうすればよいですか?
haskell - IO以外のモナドでHUnitをテストフレームワークで使用することは可能ですか?
現在、次のテストコードがあります。
これはちょっとうまくいきますが、面倒です。テスト中のさまざまなものを返さなくても何かを書くことができ、代わりにそれらが意味を成すアサーションを持つことができればよいのです。
クラスがあるAssertable
ようですが、おそらくたくさんのものを再発明する必要があるようです。
unit-testing - Haskell でエラーをテストするにはどうすればよいですか?
関数が無効な値を受け取ったときにエラーをスローするようにしたいと考えています。たとえば、正の数のみを返す関数 pos があるとします。
これは単純な例ですが、理解していただければ幸いです。
エラーが予想されるテスト ケースを記述し、それを合格テストと見なしたいと考えています。例えば:
【私の解決策】
これは、@hammarのコメントに基づいて最終的に行ったものです。
haskell - テストを含む完全な Haskell スタックの作成
Haskell は初めてで、テスト対象のプログラムを構築しようとしています。HUnit と Cabal を使用することにしました。
私が見たものから、よく構造化されたプロジェクトは次のようになります。
私にとって謎の部分は、TestRunner.hs と AppName.cabal です。
testsuite/tests ディレクトリとサブディレクトリの下ですべてのテストを実行するテストランナーはどのようになりますか? どうすればカバルと統合できますか?
また、ハックの依存関係を AppName.cabal に入れ、コマンド ラインからビルドするにはどうすればよいでしょうか?
テストと依存関係を使用してゼロからアプリケーションを構築する完全な例を見つけるのに苦労しています。
ありがとう
haskell - ファイル依存テストによる HUnit テスト
レクサーがあり、既知の適切なテスト ケースのセットに対してテストしたいと考えています。これらはサブディレクトリ./test_src/に保持され、それぞれに拡張子testname .txtが付いています
私がやりたいことは、関連するすべてのテストケースへのパスを取得することです:
HUnit TestCases を含む HUnit TestList を作成し、それぞれの行に沿って関数を介して作成されたアサーションを使用します。
の線に沿った何か
私のアプローチで失敗しているように見えるのは、これには最初に次の関数が必要であり、次にその結果をマッピングするように思われることです:
IOモナドをエスケープする必要があるように見えるため、私が従っているアプローチは不可能であると強く疑っています。
- このアプローチは実行可能ですか?もしそうなら、何が欠けていますか?
- そうでない場合、この問題をどのように解決しますか? すべてのテストケースでハードコーディングを避けることはかなり一般的です
unit-testing - HUnit テストが失敗する原因となるエラーの伝播
function の HUnit テストを書いていますeval :: Wff -> Assignment -> Maybe Bool
。Wff
ブール式の単純化されたサブセットの抽象解析ツリーであるカスタム データ型です。
およびAssignment
は、 a の各変数にブール値を与える連想リストの型エイリアスですWff
。
私の現在のテストは次のようになります。
構築された両方のテストに合格します。ただし、このテストはあまり堅牢ではありません。のより複雑な値を変更してタイプミスをすると、 が aではなくa を返すためwffStr
、パターンRight wff
は失敗します。これにより、テストの実行が中止され、いくつかの悪いテストで失敗し、残りの実際の結果が得られます。現在の構造を変更して、エラーが伝播し、すべてを中止するのではなく、テストが失敗するようにするにはどうすればよいですか?parse
Left String
Rigth Wff
haskell - Haskell - 関数が呼び出されたことをアサートする
関数が Haskell HSpec で呼び出されたことを確認することは可能ですか?
データを変換する2 つの関数fooとbarがあると仮定します。
そして 、2 番目の引数として「f」または「b」を受け取ったかどうかに応じて、スタッフにfooまたはbarを適用し、適用された関数の結果を返す関数があります。
そして、私のテストでは、各関数 foo と bar を包括的にテストしましたが、その影響をapplyでテストしたくありません。
関数 foo または bar が呼び出されたことを確認することはできますか? 適用するために渡される引数に応じて?
haskell - Cabal サンドボックス内の HUnit テスト
問題が発生した後、簡単なスタブ テストを実行するように Cabal プロジェクトを構成することができましたTrue @=? True
。1 つの値をテスト済みパッケージの定数に置き換えても、まだ機能します。ただし、テストするカスタム データ型のインスタンスを作成しようとすると、リンク エラーが発生します。
今のところ、プロジェクトは 2 つのモジュールで構成されています。
testShow
がコメントアウトされると、すべて問題ありませんが、コメントを外すと、次のようになります。
testShow
リストでまだコメントアウトされている場合でも、エラーが発生しtestModule
ます。package.cabal
次のようになります。
ファイルはすべて次の場所にあります。