Buat kotak pasir yang akan bertindak sebagai wadah kotak hitam untuk semua mata-mata, rintisan, pengolok, dan pemalsuan Anda.
Yang harus Anda lakukan adalah membuat kotak pasir di blok mendeskripsikan yang pertama sehingga dapat diakses di semua kasus pengujian. Dan setelah Anda selesai dengan semua kasus pengujian, Anda harus merilis metode asli dan membersihkan stub menggunakan metode sandbox.restore()
di hook afterEach sehingga pada waktu proses rilis yang tertahan afterEach
kasus pengujian resource dilewatkan atau gagal.
Berikut ini contohnya:
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();
});
});