একটি স্যান্ডবক্স তৈরি করুন যা আপনার সমস্ত গুপ্তচর, স্টাবস, মকস এবং নকলের জন্য একটি ব্ল্যাক বক্স ধারক হিসাবে কাজ করবে।
আপনাকে যা করতে হবে তা হ'ল প্রথমে বর্ণিত ব্লকটিতে একটি স্যান্ডবক্স তৈরি করা যাতে এটি সমস্ত পরীক্ষার ক্ষেত্রে অ্যাক্সেসযোগ্য। এবং একবার আপনি সমস্ত পরীক্ষার কেসগুলি সম্পন্ন করার পরে আপনার আসল পদ্ধতিগুলি প্রকাশ করা উচিত এবং sandbox.restore()
আফটার হুকের পদ্ধতিটি ব্যবহার করে স্টাবগুলি পরিষ্কার করা উচিত যাতে রানটাইম সময়ে এটি রিলিজ হওয়া রিসোর্স afterEach
পরীক্ষার কেস পাস বা ব্যর্থ হয়।
এখানে একটি উদাহরণ:
describe('MyController', () => {
//Creates a new sandbox object
const sandbox = sinon.createSandbox();
let myControllerInstance: MyController;
let loginStub: sinon.SinonStub;
beforeEach(async () => {
let config = {key: 'value'};
myControllerInstance = new MyController(config);
loginStub = sandbox.stub(ThirdPartyModule, 'login').resolves({success: true});
});
describe('MyControllerMethod1', () => {
it('should run successfully', async () => {
loginStub.withArgs({username: 'Test', password: 'Test'}).resolves();
let ret = await myControllerInstance.run();
expect(ret.status).to.eq('200');
expect(loginStub.called).to.be.true;
});
});
afterEach(async () => {
//clean and release the original methods afterEach test case at runtime
sandbox.restore();
});
});