Створіть пісочницю, яка буде виконувати функцію контейнера з чорною скринькою для всіх ваших шпигунів, заглушок, макетів і підробок.
Все, що вам потрібно зробити, це створити пісочницю в першому описувальному блоці, щоб він був доступний у всіх тестових випадках. І коли ви закінчите з усіма тестовими кейсами, ви повинні випустити оригінальні методи та очистити заглушки, використовуючи метод sandbox.restore()
у гачку AfterEach, щоб під час виконання він звільняв затримані ресурси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();
});
});