2016-08-18 1 views
0

私はサービスをテストしたいと思う簡単なテストをしています。バックエンドではモジュールをフェッチするためにrequire()を使用しますが、フロントエンドはwebpackimportを使用します。`require`の代わりに` import`文を使用して単一モカテストを呼び出す

私のテスト:

const testee = require('../network-template.service'); 

describe('getTemplates', function() { 
    it('shall return templates from server', function (done) { 
     console.log(testee); 
     done(); 
    }); 
}); 

私のテストクラス:

import fetch from 'isomorphic-fetch'; 

const ENDPOINT = 'http://localhost:3000/api/network-templates'; 

class NetworkTemplateService { 
    getTemplates(){ 
     return fetch(ENDPOINT, { 
      method: 'GET', 
      headers: { 
       'Accept' : 'application/json' 
      }, 
      body: JSON.stringify(ports) 
     }) 
      .then(response => ({response})) 
      .catch(error => ({error})); 
    } 

このテストを実行するにはどのようにシンプルかつ高速な方法はありますか?私はバックエンドでどのようにコンパイルするのが好きで、セットアップをせずにすぐにすべてのテストを実行できます。

+0

testスクリプトを持っている場合は、インポートを使用し、フロントエンドであなたのコンポーネントをテストしたい場合、私はあなたがテストできるように、それをプリコンパイルしなければならないと思います。 –

答えて

2

バベルは、その場でコードをtranspileするために使用することができrequire()フックを持っているので、あなたのテストを実行する前に、任意の設定を行う必要はありません。インストールするには

--compilers js:babel-register 

それとも、あなたはコマンドラインフラグとしてこれを追加することができます。

npm i babel-register --save-dev 

を、それを使用するには、mocha.optsファイルに次の行を追加することができます。あなたはpackage.json ...

"scripts": { 
    "test" "./node_modules/.bin/mocha --compilers js:babel-register" 
} 
+0

thx、うまく動いています。私はJetbrains PhpStormを使用しています。その目的のために私は 'babel-register'をグローバルにインストールしなければなりませんでした。' mocha.opts'の代わりに 'Run/Debug configurations'に' Extra Mocha options'を使用しました。 – zatziky

+0

私は参照してください。私はJavaScriptの開発にIntelliJを使用していますが、IDEを使用してテストを実行することもできます。私の経験から、 'mocha.opts'ファイルは尊重されていますので、好きな方法で実行することができます。私が 'mocha.opts'に傾いているのは、コマンドラインで' mocha'バイナリを使って私のテストを時々実行したいからです。 –

0

package.jsonにこの行を追加して、それをあらかじめバベルでコンパイルしておくとよいでしょう。

..."scripts": { 
     "test":"mocha --compilers js:babel-core/register ./test/example_test.js" 
}... 
関連する問題