2016-05-15 1 views
-1

私は明らかにプロトタイプパターンについて読んだことがあります。私はオブジェクトを返す関数を作成しました。モカ/ ExpectJs:明らかにプロトタイプモジュールを実装しようとしましたが、テストすることができません

'use strict' 

exports.testPrototype = (function() { 
    function testMe() { 
     return true 
    } 

    return { 
     testMe: testMe 
    } 
})() 

console.log(exports.testPrototype.testMe()) 

const test = Object.create(exports.testPrototype) 
console.log(test.testMe()) 

console.logの出力は、両方のコールにtrueあります。

問題は、私はそれをテストするためにモカを得ることができません。ここで

は私のテストで:

const expect = require('expect') 
const testPrototype = require('../testPrototype.js') 

describe('testPrototype',() => { 
    it('Should return true',()=> { 
     const test = Object.create(testPrototype) 
     expect(test.testMe()).toEqual(true) 
    }) 
}) 

私がテストを実行すると、私は次のエラーを取得する:

1) testPrototype Should return true: 
    TypeError: testPrototype.testMe is not a function 
     at Context.<anonymous> (testPrototype.spec.js:7:24) 

私は一日これで苦労してきました。なぜテストは機能していないのですか?私は何かをシンプルに逃したのですか

答えて

0

あなたのモジュールは、輸出にtestPropertyというプロパティをオブジェクト追加された:

exports.testPrototype = ... 

しかし、モカ・テスト・ファイルは、その特定のプロパティを輸出自体をオブジェクトを使用して、されていません。

代わり
const testPrototype = require('../testPrototype.js') 

明示的にプロパティを使用する必要があります。

const testPrototype = require('../testPrototype.js').testPrototype 
関連する問題