問題タブ [qunit]

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 に答える
632 参照

asp.net - モック/フェイク ASP.NET サービス リファレンスと QUnit テスト

QUnit のテストを始めたばかりで、最初のページで問題が発生しました:S

ASP.NET サービス参照を使用して、html ページでの非同期データ読み込みを利用し、同じプロジェクト内の Web サービスへの参照を作成します。ASP.NET が舞台裏 (ScriptManager コントロール) で行っていることは、サービス メソッドを表す JS ファイルを作成し、すべての AJAX 呼び出しを処理することです。

これを使用して、document.ready jQuery イベントでこれらのメソッドのいずれかを呼び出すページを作成します。現在、QUnit を使用してこの js ファイルに対してテストしようとしていますが、js ファイルで実際の Web サービスを呼び出すことは避け、代わりにモック サービスを使用します。これまでの試みのために私が持っているものは次のとおりです。

main.js (本番コード ファイル)

main-test.js (テスト QUnit コード、main.js はこのページで参照されています)

このテストは失敗します。LoadData メソッドは、元の (main.js) document.ready イベントの一部として呼び出されるため、引き続き運用 Web サービスを呼び出しますが、その GetDataCalled 変数が設定されていない (または運用環境で定義されていない) ため、テストは失敗します。私は asyncTest を間違っていますか? (これは QUnit での私の最初の日なので、そうなる可能性が非常に高いです)

これが機能していることを確認できるもう 1 つの方法は、main.js の document.ready イベントをオーバーライドできる場合ですが、その方法についてはよくわかりません。また、本番環境の main.js コードに「testEnvironment == true」チェックを追加したくありません。

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

jquery - How can we execute Unit Tests against DOM manipulation?

The introduction to QUnit over at netTuts.com spawns an interesting exchange (never resolved) over how to apply unit tests against actions that manipulate the DOM. The following quote (Alex York) gets to the crux:

What would be nice is that if you had a function like this:

function add(a, b) { var result = a + b; $(“input#ResultTestBox”).val(result);

In the above test, I would love to test two things: the addition of a and b, and the result correctly being put into a DOM element. I would love to test the second thing by providing some mock HTML. Possible?

But, like I said...unresolved. Resolvable?

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

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

rake test:qunitコマンドを発行して、qunitテストを実行できるようにしたいと思います。これは可能ですか?ブラウザウィンドウを開かずに実行できますか?

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

javascript - Ajax レスポンスの末尾のスペース

Qunitを使用してコードをテストしようとしていますが、Ajax 呼び出しに問題があります。jQuery メソッドを使用した最も単純な Ajax 呼び出しで正しくテストすることさえできません。問題は、私が何をしても、末尾のスペースが textResponse に追加されることです。

私の最初のコードは次のようなものでした

ajax.txtすべての文字を含むテキスト ファイルですfoo。このテストは失敗し、報告しています

Ajax 呼び出しは正常に機能します。予期される: "foo" 結果: "foo "、差分: "foo" "foo "

次に、次のことを試しました。

  • 「foo」(末尾のスペースを含む)に対してテストしました
  • 私はresponse.replace(' ', '')テストの前にやった
  • ajax.txt ファイルのフォント エンコーディングを変更しました
  • キャッシュを消去するたびに、FirefoxとChromeの両方でテストしました
  • == 比較を使用しても、アラート内の同等性を手動でテストしました

しかし、私は決して一致することができませんでした。たとえば、最初のバリアントでは、不可解な答えが得られました

Ajax 呼び出しは正常に機能します。予期される: "foo " result: "foo "、diff: "foo "

私は今、少し気が狂っています。私は何が間違っていたのでしょうか?

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

javascript - jQuery プラグイン: qunit を使用してプラグインの構成をテストするにはどうすればよいですか?

jQueryプラグインの作成中にqunitを試していますが、次のことをどのようにテストできるか疑問に思っていました:

これは、私の qunit テストの単純なバージョンです。

それで、テスト内のプラグインから内部メソッド/メンバーをどのように公開できるのか疑問に思っていましたか?

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

javascript - Qunit: テストリーク

jQuery プラグインをテストするときにリークの問題があります。この問題は、リテラル オブジェクトの値または関数をモック アウトしたいときに発生します。

例:

最初のテストで「bar」変数がデフォルトに追加されたため、このテストは失敗します。次のコードで修正しましたが、コピーのコピーを取るのはあまりエレガントに見えません。

また、jQuery 名前空間にいくつかのオブジェクトがある場合、各オブジェクトの複数のコピーを取得する必要があると、少し面倒になる可能性があります。それで、すべてのオブジェクトを「リセット」するためのより良い解決策を誰かが持っているのではないかと思っていましたか?

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

javascript - Javascriptでデータオブジェクトからプロトタイプメソッドを削除する方法、またはオブジェクトをQunit equalsで動作させる方法

コードの単体テストを行うために Qunit を使い始めましたが、オブジェクトの比較で問題が発生しています。

私がテストしているコードは動的にオブジェクトを作成します:

このテストは失敗し、id と name のフィールドだけが含まれていると予想されますが、結果には多くの関数も含まれていることがわかります。

これらの関数は、オブジェクトを配列のように扱って代入することから来ていると思います。

これらの機能を削除する (または最初から追加されないようにする) 方法はありますか?

しようと思ってた

より良い方法はありますか?

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

javascript - JavascriptテストにqUnitを使用する

私はJavaScriptユニットテスト用のqUnitが大好きで、ほぼ独占的にAJAXである大規模なWebホスティングプラットフォームで正常に使用しています。ただし、ブラウザで手動で実行するか、Windowsのスケジュールされたタスクとして実行する必要があります。これは理想的ではありません。

perlやJavaのように、自動テストスイートの一部としてjUnitテストを実行した人はいますか?

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

jquery - 別のビュー/ページから呼び出すときに AJAX 呼び出しターゲットを変更する方法は?

Qunit を使用して .js スクリプトをテストしています。

.js の「テスト対象コード」(CUT) と適切なマークアップを含む静的な .html テスト ハーネスがあります。含まれている別のスクリプトで QUnit を使用してテストしています。
このハーネスとテスト スクリプトは、次のプロジェクトにあります: Application.UI.Tests.JScript.

CUT には、それを使用するビューの位置に関連するターゲットを持つ AJAX 呼び出しがあります。
ビューとスクリプトは、MVC プロジェクトの従来のフォルダーにあります: Application.UI.

ビルド イベントはApplication.UI.Tests.JScriptDelScriptsXCopyフォルダーと Content フォルダーの実行を行い、CUT の最新バージョンのコピーに対してテストが実行されていることを確認します。

コード例:

actionName はアクションに移動します。

今のところデータを返すだけで、最終的にはドメイン層で適切なロジックを呼び出すことになります。


質問: CUT を編集してテスト固有の情報を含めずApplication.UIに、静的 .html ページから 実行中のプロジェクトのコントローラーで AJAX アクションを呼び出すにはどうすればよいですか?Application.UI.Tests.JScript

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

jquery - コントロール QUnit テスト順序

jQuery と多数の ajax リクエスト (json 形式) を使用して Web サイトを構築しました。
サーバー側でリクエストを検証するための単体テストを行いたいと思います。
jQueryを使っていたのでqUnitを使っているのですが、テストの順番に問題が...

たとえば、これをテストしたかった: - ユーザーの作成 => 可能
- 有効な名前でユーザーの名前を変更 => 可能
- 使用済みの名前でユーザーの名前を変更 => 不可能
- ユーザーを削除 = >ありえるかも

私のコード:

しかし、問題は 1 のテストが実行され、次に 4 と 2 と 3 が実行されることです... (そして、問題は私のテストが独立していないことだと思います)

これをどのように解決できますか?
4つのテストすべてを1つにカスケードできますが、読みにくくなると思います...

どう思いますか ?