আমি ভাবতে শুরু করেছিলাম এটি সম্ভব নয় তবে আমি যাই হোক জিজ্ঞাসা করতে চাই।
আমি এটি পরীক্ষা করতে চাই যে আমার একটি ES6 মডিউল অন্য একটি ES6 মডিউলকে একটি বিশেষ উপায়ে কল করে। জুঁইয়ের সাথে এটি অত্যন্ত সহজ -
অ্যাপ্লিকেশন কোড:
// myModule.js
import dependency from './dependency';
export default (x) => {
dependency.doSomething(x * 2);
}
এবং পরীক্ষার কোড:
//myModule-test.js
import myModule from '../myModule';
import dependency from '../dependency';
describe('myModule', () => {
it('calls the dependency with double the input', () => {
spyOn(dependency, 'doSomething');
myModule(2);
expect(dependency.doSomething).toHaveBeenCalledWith(4);
});
});
জাস্টের সমতুল্য কী? আমার মনে হচ্ছে এটি করা খুব সহজ জিনিস, তবে আমি আমার চুলগুলি বের করার চেষ্টা করছিলাম।
নিকটস্থ আমি এসেছ প্রতিস্থাপন করে import
দিয়ে গুলি require
গুলি, এবং তাদের পরীক্ষায় / ফাংশন ভিতরে চলন্ত। এর মধ্যে কোনটিই আমি করতে চাই না।
// myModule.js
export default (x) => {
const dependency = require('./dependency'); // yuck
dependency.doSomething(x * 2);
}
//myModule-test.js
describe('myModule', () => {
it('calls the dependency with double the input', () => {
jest.mock('../dependency');
myModule(2);
const dependency = require('../dependency'); // also yuck
expect(dependency.doSomething).toBeCalledWith(4);
});
});
বোনাস পয়েন্টগুলির জন্য, যখন ভিতরে ফাংশনটি dependency.js
একটি ডিফল্ট রফতানি হয় তখন আমি পুরো জিনিসটি কাজ করতে পছন্দ করব । তবে আমি জানি যে ডিফল্ট রফতানিতে গুপ্তচরবৃত্তি জেসমিনে কাজ করে না (বা কমপক্ষে আমি এটি কখনই কাজ করতে পারি না), তাই আমি আশা করি যে জেস্টে এটিও সম্ভব possible
import
s করাrequire
এখন জন্য গুলি। যদিও মাথা আপ জন্য ধন্যবাদ।