2

SocketStream/node.js サーバーによって配信される AngularJS アプリケーションに取り組んでいます。SocketStream サーバーで API 関数を呼び出す AngularJS サービスがあり、これまでのところ順調に進んでいます。

しかし今、最初のテストを書き始める時が来ました。最初に頭に浮かんだテスト フレームワークは Karma/Jasmine です。これは AngularJS の推奨設定であるためです。

ここまでは順調ですが、AngularJS モジュールは「require」(require.js ではなくSocketStream のバージョン) を使用してインポートされ、サーバー API 呼び出しはテストの一部であるため、カルマを構成して SocketStream (少なくともそのクライアント側) をロードする必要があります。 .

「 https://github.com/yiwang/angular-phonecat-livescript-socketstream 」をよく見ましたが、この例を実行すると実行時エラーが発生します。おそらく、さまざまな依存関係の新しいバージョンがインストールされているためです。

app.js に 'ss.client.packAssets()' を追加して 'SS_PACK=1 node app.js' を実行して SocketStream アプリをパックすることで 'required' を解決できましたが、カルマを開始するとエラー メッセージがログに記録されます。言って:

'Chrome 23.0 (Linux) ERROR
    Uncaught TypeError: undefined is not a function
    at /the...path/client/static/assets/app/1368026081351.js:25'

「1368026081351.js」は SocketStream パック アセット ファイルです。ロードしないと、「require is undefined」のようなエラー メッセージが表示されるため、SocketStream の require コード内のどこかでエラーが発生していると考えられます。また、カルマを DEBUG モードで実行し、提供されているすべてのファイルを確認できるためです。

私は何が起こっているのかを知るためにさまざまなアプローチを試みてきましたが、今では役に立ちません。だから私の質問は:

Karma を使用して AngularJS/SocketStream のテストに成功した人はいますか? この問題を修正する方法、または少なくともデバッグする方法について誰か提案がありますか? 代替案/より良い解決策はありますか?

4

1 に答える 1