2017-10-27 10 views
0

私が取り組んでいるアプリケーション用のモックを使って単体テストを書きたいと思っています。NativeScript - ユニットテスト時に模擬ライブラリをインポートできない

  • tns create test_ns --tsc
  • npm install -D sinon # library for mocking; I can't import it
  • npm install -D underscore # a js lib that I can import, for reference
  • tns test init --framework=jasmine
  • tns test android

そして、ここでtest/example.jsです:

何の違いを - 私の karma.conf.js link

tns testコマンドです

は、私があまりにもkarma-sinonパッケージをインストールしていないError: com.tns.NativeScriptException: Failed to find module: "sinon", relative to: app/tns_modules/

で失敗します。

この問題はNativeScriptのrepo #1956で発生し、問題のあるnpmパッケージを別のモジュールにセットアップしてからインポートすることを提案しています。私はこれを試みたが、require('sinon')はまだ同じエラーで吠える。

私はsinonの使用を主張しません - 私はちょうどmocking jsライブラリが必要です。私はtestdoubleで試しました - 私は同じ "モジュールを見つけることができませんでした"。

提案?

答えて

0

tns testコマンドは、通常のアプリケーションのエントリポイントをカスタムエントリに置き換え、アプリケーションパッケージを作成してテストデバイスで起動します。 npmの "dev-dependencies"はアプリケーションパッケージに存在しません。そのため、アプリケーションがパッケージ化されていないものとしてインストールされています(たとえそれがテスト構成であっても、sinon)。

sinonをアプリケーションの内部で使用するためのプロダクション依存関係としてインストールします。

npm install sinon --save

+1

ありがとうございます。あなたの返事は正しい方向に私を指摘しました。私は実際にすでにそれをしましたが、 'モジュールを見つけられませんでした:" os "'。私は 'sinon'がそのモジュールに依存していることを見て、それをインストールした後でも、動作させることができませんでした.Sinonがブラウザまたはノードのどちらかで実行することを期待する' ReferenceError:process is not defined ' .js。 –

関連する問題