สร้างแซนด์บ็อกซ์ซึ่งจะทำหน้าที่เป็นที่เก็บกล่องดำสำหรับสายลับต้นขั้วล้อเลียนและของปลอมทั้งหมดของคุณ
สิ่งที่คุณต้องทำคือสร้างแซนด์บ็อกซ์ในบล็อกแรกอธิบายเพื่อให้สามารถเข้าถึงได้ตลอดทุกกรณีการทดสอบ และเมื่อคุณดำเนินการกับกรณีทดสอบทั้งหมดเสร็จแล้วคุณควรปล่อยเมธอดดั้งเดิมและล้างสตับโดยใช้เมธอด sandbox.restore()
ใน afterEach hook เพื่อที่รันไทม์ที่ปล่อยafterEach
กรณีทดสอบรีซอร์สที่ค้างไว้จะถูกส่งผ่านหรือล้มเหลว
นี่คือตัวอย่าง:
describe('MyController', () => {
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 () => {
sandbox.restore();
});
});