Tạo một hộp cát sẽ hoạt động như một hộp chứa màu đen cho tất cả các gián điệp, cuống, giả và giả của bạn.
Tất cả bạn phải làm là tạo một hộp cát trong khối mô tả đầu tiên để nó có thể truy cập được trong tất cả các trường hợp thử nghiệm. Và một khi bạn đã hoàn thành tất cả các trường hợp thử nghiệm, bạn nên giải phóng các phương thức ban đầu và dọn sạch các sơ khai bằng cách sử dụng phương thức sandbox.restore()
trong hook afterEach để trong thời gian chạy, nó giải phóng các tài nguyên bị giữafterEach
trường hợp kiểm tra bị vượt qua hoặc thất bại.
Đây là một ví dụ:
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();
});
});