問題タブ [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 投票する
1 に答える
380 参照

javascript - Mocha と chai を使用する場合、関数で期待をラップするのはいつですか?

例外をスローするコードの場合、期待値を無名関数でラップする必要があります。そうしないと、Mocha がキャッチする前に例外がスローされます。この StackOverflowの回答を参照してください。

しかし、ラッピングには副作用があるようです。
次のコードは、ラップされると動作が異なります。チャイの問題のようです。

私の手作りの Javascript バージョン:

失敗は次のようになります。
AssertionError: expected [Function] to have a property 'name' of 'kalle', but got ''

ラッピングによって結果が異なるのはなぜですか?
前もって感謝します!

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

selenium - Chai-As-Promised はアサーション エラーを食べています

Selenium-webdriverテストを作成するために、chai-as-promised + mochaを使用しています。webdriver はpromisesを広範囲に使用するため、これらのタイプのテストには chai-as-promised を使用した方がよいと考えました。

問題は、テストが失敗したときにエラーが mocha によって適切にキャッチされず、何も出力せずに失敗することです。

サンプルコード:

文書化された動作によると、期待が失敗した場合、chai-as-promisedはエラーを mocha に渡す必要があります。右?

バリエーションとして、

私もこれらを試しましたが、役に立ちませんでした:

#2

#3

#4

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

node.js - Sinon-Chai を使用すると、テストに失敗すると「エラー: 2000 ミリ秒のタイムアウトを超えました」と表示される

統合テストを書いている次のルート(高速)があります。

コードは次のとおりです。

すべてのコンポーネントが連携して動作することをテストしたいのですが、偽の HTTP 応答を使用するため、要求/http 相互作用のスタブを作成しています。

Chai、Sinon、Sinon-Chai、および Mocha をテスト ランナーとして使用しています。

テストコードは次のとおりです。

応答に書き込まれた引数 (response.write) が一致する場合、テストは成功です。問題は、テストが失敗したときの失敗メッセージが次のようになることです。

「エラー: 2000 ミリ秒のタイムアウトを超えました」

この回答を参照しましたが、問題は解決しません。

このコードを取得して、正しいテスト名と失敗の理由を表示するにはどうすればよいですか?

注意: 二次的な質問として、応答オブジェクトがアサートされる方法を改善できますか?

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

javascript - Chai の「主張する」、「期待する」、「すべき」の違いは何ですか?

assertexpect、 とはどう違いshouldますか? いつ何を使う?

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

javascript - WebDriver / Sauce Labs / Chai / chai-as-promise ドキュメンテーション?

Sauce Labs と WebDriver を使用したシナリオ テストのセットアップがあります。chai と chai-as-promise ライブラリを含めています。私は例から少しずつ引き出してきましたが、次のようになりました。

しかし、ここからどこへ行くべきか本当にわかりません。https://github.com/admc/wdの ReadMe には、概念の優れた概要と説明があります。https://github.com/adm/wd/blob/master/lib/commands.jsのようなソース ファイルを調べて、いくつかのアイデアを得ることができます。しかし、私が本当に必要としているのは、利用可能なすべての関数のリストを含むドキュメントです。一般的なテストを行うためのチュートリアルがいくつかあるとよいでしょう。

基本的に、私がここに行くのに役立つリソースはありますか?

ありがとう。

編集:

たとえば、dom 内のリストの長さをチェックする単純なもの:

エラーが表示されます:

AssertionError: expected { Object (value, browser) } to have a property 'length'

ここで何が欠けていますか?

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

node.js - Mocha アサーションと Chai アサーションを使用して NodeJS コードをテストする場合、コールバックから例外がスローされることを期待するにはどうすればよいですか?

NodeJS アプリをテストするために Chai 期待アサーションで Mocha を使用しています。私はこのようなテストを書くことができ、それはうまく動作します:

しかし、fn最初にコールバックを受け取る関数を呼び出す必要があり、結果に基づいてエラーをスローする可能性がある場合はどうなるでしょうか? たとえば、データベースにヒットし、結果に基づいて例外をスローする可能性がある場合は? これは機能しません:

done が呼び出されるとテストは終了しますが、例外がまだスローされていないため、テストは失敗します。このテストに合格するにはどうすればよいですか?

編集:ピーターの答えによると、これは正しいアプローチではありません。これは、次のようなスタイルでより適切に表現できます。

助けてくれてありがとう!これは、私が取り組んでいる多くのことに役立ちます。