問題タブ [nodeunit]
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.
node.js - node.jsのcompoundjsアプリケーションでセッションオブジェクトをモックする方法
node.js に複合 js アプリケーションがあります。一部のアクションでは、認証が成功した後にのみ入力される「session.user」値の存在をチェックするフィルターがあります。しかし、そのようなアクションの単体テスト ケースを作成すると、session.user の値が未定義になります。スーパーテスト、sinon モジュールを使用して get を作成し、リクエストをアクションに投稿しますが、「session.user」値の値が定義されていないため、認証されず、適切なアクションにリダイレクトされます。私は同じで立ち往生しているので、私を助けてください。
session.user 値を認証できるように、正確に何をモックする必要があるか教えてください。前もって感謝します、
肯定的な答えを待って、
ありがとう、
node.js - テスト以外でNodeJSが子プロセスを生成しない
次の NodeJS コードがあります。
正常に実行される NodeUnit テストがあります。phpStorm を使用してテストをデバッグすると、var unzipが正しく割り当てられます
ただし、同じコードを Web サービスの一部として実行すると、spawn呼び出しが正しく返されず、 unzip varの存在しないstdoutプロパティにonハンドラーをアタッチしようとすると、サーバーがクラッシュします。
プログラムをphpStormの外で実行しようとしましたが、同じ理由でコマンドラインでもクラッシュします。テストで対処する必要がないのは、アクセス許可の問題だと思います。Web サーバーの生成プロセスは実稼働環境で混乱を引き起こす可能性があるため、追加のアクセス許可が必要になる可能性がありますが、私の仮説を裏付けるドキュメントを見つけることができませんでした (または見逃してしまいました)。
OSX Snow Leopard (MacPorts 経由) で v0.10.3 を実行しています。
子プロセスを正しく生成できないのはなぜですか?
アップデート
@ジョナサン・ウィーパートのために
私はプロトタイプの継承を使用しているので、Unzipper の「インスタンス」を作成するときに、stdout と stderr を設定します。
これは、「コンストラクター インジェクション」の概念に似ています。他の点については、ヒントをありがとう。
私が得ているエラーは次のとおりです。
私のデバッグ スクリーンショットによると、spawn呼び出しから返されるオブジェクトは状況によって異なります。テストに合格したため (ZIP を正しく解凍できることを確認します)、このコードを Web サービスとして実行すると問題が発生します。
node.js - Compoundjsとmochaを使用したnodejsでのテスト
以下を使用して、スキャフォールディングされた複合jsアプリを最初から作成しました。
よりも
よりも
これが実行されます: ./node_modules/.bin/mocha --include test/init.js test/ / .test.js
ただし、次の出力エラーしか表示されません。
./node_modules/.bin/mocha --include test/init.js test/ / .test.js
node.js - node-inspector を使用して nodeunit をデバッグする方法
できます:
- nodeunitを使用して node.js モジュールをテストできます。
- node inspectorを使用して、node.js Express サイトをデバッグできます。
しかし、node inspector を使用して nodeunit テストをデバッグするにはどうすればよいでしょうか?
私は試しましたが、うまくいきませんでした:
nodeunit --debug myNodeUnitModule_test.js
動いていない。- nodebugをインストールしようとしました。そして、次
nodebug /usr/local/bin/nodeunit myNodeunit_test.js
のように使用しました:しかし、ubuntu(No such file or directory
)でもmac()でもenv: node\r: No such file or directory
機能していません
ほとんど動作する node --debug /usr/local/bin/nodeunit ./routes/edit/bodyTelInfoArraysToObject_test.js
/usr/local/bin/nodeunit
コマンドが取るパスはどこですかwhich nodeunit
得られた出力:
debugger listening on port 5858
そしてテストがそこで実行されました。
しかし、デバッグにジャンプすることはできません: Chrome で URL を開いlocalhost:8080
てデバッグを監視すると:
- 最初の読み込み 空のファイル リストが表示される
- 2 回目の読み込み: ページが見つかりません。
私のnodeunitテストでは、debugger
そこでデバッグを停止するように書きました。しかし、何もありません。
javascript - nodeunit を使用した非同期テスト ケース
多くのメソッドを次々とテストしたいのですが、1 つのメソッドの出力を次のメソッドに渡す必要があります。
例: add と delete という 2 つのメソッドをテストします。add メソッドの onsuccess は、追加されたオブジェクト (とその ID) を返します。作成されたオブジェクトが削除されるように、削除メソッドに渡したい同じオブジェクト。
1 つの方法は、これら 2 つの関数の外でノード オブジェクトを定義し、両方のメソッドからアクセスすることです。
これが適切な方法なのか、それともより良いアプローチがあるのか 疑問に思っていました。
javascript - coffeescriptファイルでエラーのある行番号を取得する方法
node.js Expressアプリとnodeunitテストでは、javascript の翻訳によるプロジェクトの詰まりを避けるために、結果のjavascriptファイルをディスクに保存せずに coffeescript を広く使用しています。
coffeeScript ファイルでエラーが発生すると、コンソールに次のように表示されます: エラーが発生したファイル名と行番号 (たとえば 37): /pathTo_File/fileName.coffee:37
。しかし、私のコーヒーファイルには37行目がありません!!! そこには2倍少ない行があります。
出力JavaScriptファイルの 37 行目にエラーが発生したと思いますが、ディスクにはありません。Coffeescript ファイルのみ。
では、coffeescript ファイルでエラーのある行番号を取得するにはどうすればよいですか?
コーヒースクリプトファイルを手動で(コンソールを使用して)jsに変換し、そこに行番号を表示して、コーヒーファイルでそのエラーが発生した行を推測できることを理解しています。しかし、もっと速いものがあるかもしれません。
私の IDE は WebStorm で、OS は osX です。
node.js - Node.js の doesNotThrow は undefined を返します
私の NodeUnit テストには、次のようなコードがあります。
しかし、doesNotThrow(...) の呼び出し後に functionResult が定義されていません なぜ test.doesNotThrow() は関数呼び出しの結果を返さないのですか? それはかなりエレガントでしょう。