proxyQuireとsinonを使ってテストケースを書いていますが、インスタンスが作成できないでいます。
テスト対象とテストコードはこちらです。
Target.js
javascript
1import {readFileSync} from 'fs'; 2 3const json1 = JSON.parse(readFileSync('./config/json1.json')); 4const json2 = JSON.parse(readFileSync('./config/json2.json')); 5 6export default class Target { 7 constructor(arg1){ 8 this.arg1 = arg1; 9 } 10 11 doSomething() { 12 if (this.arg1) { 13 return json1; 14 } else { 15 return json2; 16 } 17 } 18}
Test.js
javascript
1import 'mocha'; 2import proxyQuire from 'proxyquire'; 3import sinon from 'sinon'; 4 5describe('TestCase', () => { 6 let ProxyQuireTarget; 7 beforeEach('setup', () => { 8 const json1 = { 9 Foo: {json1: 'JSON1'}, 10 }; 11 12 const json2 = { 13 Bar: {json2: 'JSON2'}, 14 }; 15 16 const stubReadFileSync = sinon.stub(); 17 stubReadFileSync 18 .withArgs('./config/json1.json') 19 .returns(JSON.stringify(json1)); 20 21 stubReadFileSync 22 .withArgs('./config/json2.json') 23 .returns(JSON.stringify(json2)); 24 25 ProxyQuireTarget = proxyQuire('../../../../src/Target', {fs: {readFileSync: stubReadFileSync}}); 26 }); 27 it('pattern', () => { 28 const Target = new ProxyQuireTarget({arg1: true}); 29 // ProxyQuireTarget is not a constructorが発生↑ 30 const result = target.doSomething(); 31 }); 32});
ProxyQuireTargetのコンストラクタを呼び出しをしようとしたところ ProxyQuireTarget is not a constructorが発生します。
Target.jsは変更せずにテストを成功させる方法はありませんか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。