2016-05-19 7 views
0

私は実際に電子を使ってアプリケーションを構築しています。電子でビルドされたパッケージを扱うときにいくつかの問題があります。電子、内部パッケージとテスト

私はチャイモカANを使用して、以下のように見えるのテストを持っている:

it('should call the remote#hideWindow method',() => { 

      /** 
      * Mock definition 
      */ 
      mock.expects('getCurrentWindow').returns({ 
       hide:() => { 
        // Do some job 
       } 
      }); 

      const spy = chai.spy(remote.getCurrentWindow().hide); 

      /** 
      * Real test case 
      */ 
      const googleSearchBar = new GoogleSearchBar(document.getElementById('search')); 
      googleSearchBar.hideWindow(); 
      expect(spy).to.have.been.called(); 
     }); 

私の問題は、私が使用して「リモート」のパッケージを使用することができないということです。

const remote = require('remote'); 

実際には、私は、私のアプリケーションの中で、ブラウザ上で動作するものを要求することができますが、私のテストではそうではありません。私はテストファイルの中でそれをアクセス可能にする方法を知らない。

私を助けることができますか?

EDIT:通知やwebspeechrecognitionなどのWeb APIを使用しようとすると同じことが起こります。何か案が ?

答えて

0

これらのテストを実際に実行する方法を指定していないため、通常のノードプロセスではなく電子プロセスで実行する必要があります。私はSpectronを見ることをお勧めします。

+0

私のアプリにまだ実行可能ファイルがない場合はどうすればいいですか? Spectronはdevの時間中に持っていない実行可能なパスを尋ねます – mfrachet

+0

@Skahrzあなたのアプリがパッケージ化されていない場合は、 'electron'実行ファイルを使用します。これはまさにSpectronのためのテストです:https:// github。 com/electron/spectron/blob/v3.1.0/test/global-setup.js#L26 –