概要
- Node.jsのファイル分割について
実現したいこと
- 以下のテストを合格に保ちながら
javascript
1var ClassA = require('../src/main'); 2 3describe('requireTest', function() { 4 it('methodC()を呼び出してOKが返ること', function() { 5 var method_CD = ClassA.space_B.method_CD; 6 expect(method_CD.methodC()).toBe('OK'); 7 }); 8});
- 以下の
メソッド2
を別のファイルに切り出したい
javascript
1var ClassA = (function () { 2 function namespace(string) { //namespace関数 3 var object = this; 4 var levels = string.split('.'); 5 for (var i = 0, l = levels.length; i < l; i++) { 6 if (typeof object[levels[i]] === 'undefined') { 7 object[levels[i]] = {}; 8 } 9 object = object[levels[i]]; 10 } 11 return object; 12 } 13 return { 14 namespace: namespace 15 }; 16}()); 17module.exports = ClassA; 18 19//メソッド1 20(function () { //クラス名の追加、削除 21 var space_A = ClassA.namespace("space_A"); 22 function methodA() {} 23 function methodB() {} 24 space_A.methodA = methodA; 25 space_A.methodB = methodB; 26}()); 27 28//メソッド2 29(function () { 30 function methodC() { 31 return 'OK'; 32 } 33 function methodD() {} 34 ClassA.namespace("space_B").method_CD = { 35 methodC: methodC, 36 methodD: methodD 37 }; 38}());
つまづいている箇所
- 以下の書き方で書き出した場合、
javascript
1var ClassA = require('./main.js'); 2 3(function () { 4 function methodC() { 5 return 'OK'; 6 } 7 function methodD() {} 8 ClassA.namespace("space_B").method_CD = { 9 methodC: methodC, 10 methodD: methodD 11 }; 12}());
undefined
となり、テストが不合格になってしまう。
JSの初心者です。どなたか知見のある方、御指南いただけたら幸いです。
備考
- テストツールはkarma, jasmine, webpackです。
- (できれば)即時実行関数の形は保ちたいと考えています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。