2016-04-01 1 views
3

私は、次のフォルダ構造を持つ電子のアプリを持っています。私はいくつかの条件付きロジックを含むので、私はmyClipboardのロジックをテストしたい。電子アプリケーションのメインプロセスでテストコンポーネントをどのようにユニット化するのですか?</p> <pre><code>app/js/ |_ main.js |_ myClipboard.js |_ view/ |_ render.js </code></pre> <p>今すぐローカルnedb(ドキュメントストア)を使用して、いくつかのユーザー・データを格納するmyClipboard呼び出しをmain.js:

これを困難にする原因は、myClipboardが電子によって提供されるクリップボードモジュールを必要とすることです。テストセットアップ(ジャスミンノード)で次の行が失敗します。

var clipboard=require('clipboard') 

「クリップボード」モジュールが見つかりませんでした。私はテストが内部の電子から実行される必要があると思います。

これはどのようにテストしますか?

electron-mochaを使ってみましたが、nedbが使用するasyncモジュールに問題があるようです。 insert、updateなどの呼び出しはテスト環境では動作しませんが、アプリを起動すると正常に動作します。

ここに何か不足していますか?

+0

あなたはどの電子バージョンですか?私はいくつかの同様の問題を抱えていたが、私が1.2.7/ – ccnokes

+0

にアップグレードしたとき、私はバージョン0.9を使っていた。 – indraneel

答えて

8

それがダウンテスト電子のアプリに来るとき、私は好き:ユニットテストに

  • いくつかの孤立したモジュールは、
  • は、アプリケーションが全体として動作するかどうかを確認するためのテストを終了するには、いくつかの終了を行います。

spectronを使用してエンドツーエンドテストを簡単に行うことができるようになりました。

単体テストでは、ノードを使ってテストを実行するだけでは利用できない電子パッケージに基づいているモジュールもあります。

proxyquireで電子パッケージを簡単にスタブすることができます。呼び出しがproxyquire @noCallThru属性で元の依存関係を要求しないようにするか、またはrequire('proxyquire').noCallThru()のようなproxyquireを要求することによって、呼び出しが行われないようにしてください。これにより、テストでは本来の依存関係を必要とせず、単純なノードプロセス内で単体テストを実行できるようになります。

また、依存性注入を活用し、モジュールが電子パッケージによって導入されたものに依存していないことを確認することもできます。

関連する問題

 関連する問題