एक सैंडबॉक्स बनाएं जो आपके सभी जासूसों, स्टब्स, मोक्स और फेक के लिए ब्लैक बॉक्स कंटेनर के रूप में काम करेगा।
आपको बस इतना करना है कि पहले वर्णन ब्लॉक में एक सैंडबॉक्स बनाएं ताकि सभी परीक्षण मामलों में यह सुलभ हो। और एक बार जब आपको सभी परीक्षण मामलों के साथ किया जाता है, तो आपको मूल तरीकों को छोड़ देना चाहिए और बाद में 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();
});
});