問題タブ [midje]
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.
clojure - midge を使用した clojure テスト
私の関数は、そこからデポジット値を取得するマップ引数を受け入れます。現在、デポジットの値が空かどうか、デポジットの値が特定の値より大きいかどうかなどのシナリオをテストできます。私の API は、ユーザーがデポジットを行う回数を追跡し、アトムを使用してこれを追跡します。ユーザーが 4 回以上入金した場合、特定のエラー メッセージが表示されます。midje を使用してこのシナリオをテストするにはどうすればよいですか?
以下は私のサンプルテストケースです:
clojure - Midje で HugSQL によって生成されたデータベース関数をモックできません
Conman ヘルパー ライブラリを使用して、HugSQL テンプレートから生成されたデータベース アクセス関数をモックするのに問題があります。これらの関数は、実行時に次のように定義されます。
(conman/bind-connection *db* file)
私の場合、このサービス関数の単体テストを行っています。
db/create-user!
関数は Conman によって生成されます。ただし、この Midje テストでその関数をモックアウトしようとすると、次のエラー メッセージが表示されます。
動的に作成されモック化された関数をサービスとテストの両方からまったく同じように参照していますが、midje はそれを同じ関数として認識しません。また、var( #'musician.user.db/create-user!
) を介して関数を参照し、サービスとテストの両方からのフル パスを使用しようとしましmusician.user.db/create-user!
たが、どちらも機能しませんでした。サービス コードは、REST API と REPL からテストすると機能しますが、このテストをセットアップできません。
問題は、実行前にわからないため、midje が関数をモックできないことのようです。これは関数を正しく参照するだけの問題ですか、それとも Midje でこれらの関数をモックアウトすることはできませんか?
clojure - 「警告: any? already refer to: #'clojure.core/any? in namespace: leiningen.midje, being replacement by: #'leiningen.midje/any?」
midje フレームワークを使用してleiningen の compojure テンプレート ( lein new compojure financeiro
) でテストを実行しようとすると、次の警告が表示されます。
私のテストコードhandler_test.clj
:
私のプロジェクトファイルproject.clj
:
clojure.test
( )を使用してデフォルトのテストを実行するとlein test
、警告は表示されませんが、midje.sweet
( lein midje
) を使用して実行すると、 「namespace: leiningen.midje」および「replace #'clojure.core/any? #'leiningen.midje/any?' へ 、Web で解決策を探していますが、この特定の警告(leiningen/compojure/midje)が見つかりません。私は clojure と midje の初心者です。私は今学んでいます。この名前空間を置き換えることができるファイルはどれですか? この警告を削除する簡単な解決策はありますか? または、これはフレームワーク midje のバグですか?
これによってテストの実行が妨げられることはありませんが、テストを実行するたびにこのメッセージが表示されるのは面倒です。
注: 以前のバージョンの midje も試してみました[midje "1.9.6"]
が、うまくいきませんでした!
unit-testing - 人々が clojure.spec 仕様をテストするのは一般的ですか?
私は Clojure を独学で学んでおり、私が学ぶためのカケボ (日本の予算編成ツール) を作成するための簡単なおもちゃのプロジェクトに取り組んでいます。最初に CLI に取り組み、次に API に取り組みます。
始めたばかりなので、仕様を「理解」することができました。これは、検証のための clojure の優れたツールのようです。だから、私の質問は次のとおりです。
- 人々は自分で書いた仕様をテストしますか?
- 次のコードのようにテストしました。これを改善するためのアドバイスはありますか?
私が理解しているように、ジェネレーティブ テストを使用して関数を自動的にテストする方法はありますが、必要最小限の仕様については、この種のテストは良い方法でしょうか?
仕様ファイル:
テスト ファイル:
最後の最後の質問として、次のインポートを試みた場合、仕様にアクセスできないのはなぜですか: