問題タブ [chai]

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

node.js - node.jsのアサーションライブラリ?

ユニットテストのためにnode.jsアサーションによって提供されるアサーションは非常に限られています。最初のテストを作成する前でさえ、私はそれらを再利用し続けることが明らかだったので、すでにいくつかのアサーションを作成していました。

一般的なJavaScriptの状況(オブジェクト構造、オブジェクトクラスなど)をテストするためのアサーションの優れたライブラリをお勧めしますか?

理想的には、nodeunitとうまく統合する必要があります(または、より良いのは、そのアサーションを拡張することです)-私のアサーションはそうではありません、私はそれらtestを追加の変数として渡す必要があります...

私が見たのはチャイだけです。あなたはそれについて何を言うことができますか?

0 投票する
7 に答える
130874 参照

javascript - 2 つのオブジェクトが同じプロパティ名のセットを持っていることを確認するにはどうすればよいですか?

アプリケーションにノード、モカ、チャイを使用しています。返された結果データ プロパティが、モデル オブジェクトの 1 つと同じ「オブジェクトのタイプ」であることをテストしたいと思います (chai のインスタンスに非常に似ています)。2 つのオブジェクトのプロパティ名のセットが同じであることを確認したいだけです。プロパティの実際の値には特に興味がありません。

以下のようなモデル Person があるとしましょう。results.data に、予想されるモデルと同じプロパティがすべて含まれていることを確認したいと思います。したがって、この場合、firstName と lastName を持つ Person です。

したがって、results.data.lastNameresults.data.firstName両方が存在する場合は、true を返す必要があります。いずれかが存在しない場合は、false を返す必要があります。ボーナスは、results.data に results.data.surname のような追加のプロパティがある場合、姓が Person に存在しないため false を返すことです。

このモデル

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

javascript - ブラウザでの Mocha と Chai の非同期テスト

モカで非同期テストを実行できません。

これが私のコードです

両方のログが表示されますが、done() は呼び出されません。

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

javascript - Mocha でスローされたエラーのテスト

この問題について何らかの助けが得られることを願っています。作成中のアプリケーションのテストを作成しようとしています。問題を次のサンプル コードにまとめました。エラーがスローされたことをテストしたい。テスト ランナーとして Testacular を使用し、モカをフレームワークとして、chai をアサーション ライブラリとして使用しています。テストは実行されますが、エラーがスローされたため、テストは失敗します。どんな助けでも大歓迎です!

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

javascript - Mocha で promise をテストする方法

Promise を返す非同期関数をテストするために Mocha を使用しています。

プロミスが正しい値に解決されることをテストする最良の方法は何ですか?

0 投票する
5 に答える
29776 参照

javascript - Chai.js: オブジェクトを含む/含む

チャイにはinclude方法があります。オブジェクトに別のオブジェクトが含まれているかどうかをテストしたい。例えば:

Chai を使用して、このオブジェクトに次のものが含まれているかどうかをテストしたい (含まれている)

これを行うとうまくいかないようです:

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

javascript - 相対パスを持つ jsdom および script タグ

このような単一ページのデモがいくつかあります: http://notjs.org/examples/forms/formmode_demo.html

私の既存の mocha chai badness セットアップでいくつかのテストを記述して、例を次のように直接テストできれば、すごいと思いました。

それができれば、「あなたの例 x は数か月前に機能しなくなった」という恥ずかしい瞬間に苦しむことはありません。

私はそれを動作させましたが、http://urls から src されたページのスクリプト タグのみを使用しました。テストの前にパッケージをサーバーにデプロイする必要がある場合、テストはそれほど効果的ではありません。

サンプル ページは jquery、underscore、および notjs をロードし、スタンドアロン デモとして機能するために必要です。また、ローカル ファイル システムから相対 URL を使用して機能する必要があります。私はもともと、ページ上のnotjsスクリプトタグが相対パスを指すようにしていました。

それ以外の

しかし、notjs.basics.js はロードされず (window.Notjs == テストでは未定義)、jsdom からのエラーは表示されません。documentRoot jsdom オプションを設定しようとしましたが、うまくいかないようです。

参考までに、loadExample メソッドと残りの jsdom セットアップはこちら: https://github.com/bee-hub/notjs/blob/master/test/testHelper.coffee

助けと提案をありがとう。

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

node.js - 複数の訪問に対してZombie.jsの「アサートが定義されていません」?

Zombie.js と Mocha との統合テストをセットアップしていて、最初のbrowser.visit()呼び出しだけが成功するように見える不可解な問題に遭遇しました。私の仕様は次のようになります。

をロードするこれらのテストの最初/docs/app.htmlのものは、問題なく合格します。ただし、後続のすべてのテストは失敗し、次のようなスタック トレースが生成されます。

ゾンビはbrowser.visit()複数回呼び出されることを意図していませんか、それとも他の問題がありますか?

バージョンをメモするための編集:

  • Node.js v0.10.1
  • モカ v1.8.1
  • チャイ v1.5.0
  • ゾンビ.js v1.4.1
0 投票する
1 に答える
5482 参照

javascript - Mocha テストで Chai のエクスポートが見つからない

簡単な Mocha テストを作成しました。ノードの「アサート」モジュールを使用すると、完全に機能します。コマンド ラインから実行します (Mocha はグローバル ノード モジュールとしてインストールされます)。

スクリプトは次のようになります。

さて、アサート ライブラリの代わりに Chai を追加してみました。最初にインストールしました:

したがって、ディレクトリ node_modules が私のプロジェクトに作成されました。これまでのところ素晴らしい。次に、Chai を使用するようにスクリプトを変更しました。

Mocha テストは TypeError で失敗します:

Chai は should を定義していないと思いますので未定義です。

これはどのように可能ですか?

Chai でテストを実行するにはどうすればよいですか? Chai をグローバルにインストールしようとしましたが、効果がありませんでした。私もスクリプトを実行しましたが-r chai、効果はありませんでした。

どうやら Chai モジュールはロードされていますが、変数 (Object.prototype プロパティ) を定義していません。どうすればこれを修正できますか?