使用mocha & chai和sinon进行TDD测试时,可以通过sinon库提供的Stub来验证被调用或未被调用的类。
首先,确保已经安装了mocha、chai和sinon,可以通过npm进行安装:
npm install mocha chai sinon --save-dev
接下来,创建一个测试文件,比如test.js,并在其中引入所需的库和要测试的类:
const chai = require('chai');
const expect = chai.expect;
const sinon = require('sinon');
const MyClass = require('./MyClass'); // 要测试的类
describe('MyClass', () => {
it('should call someMethod', () => {
const myObject = new MyClass();
const someMethodStub = sinon.stub(myObject, 'someMethod');
myObject.doSomething();
expect(someMethodStub.calledOnce).to.be.true; // 验证方法被调用一次
someMethodStub.restore(); // 恢复原始方法
});
it('should not call someMethod', () => {
const myObject = new MyClass();
const someMethodStub = sinon.stub(myObject, 'someMethod');
myObject.doSomethingElse();
expect(someMethodStub.called).to.be.false; // 验证方法未被调用
someMethodStub.restore(); // 恢复原始方法
});
});
上述代码中,通过sinon的stub方法创建了一个myObject的someMethod方法的Stub,然后通过测试的代码来触发相应的调用。最后,使用chai的expect来验证Stub的调用情况。
这样,当运行mocha进行测试时,就可以验证被调用或未被调用的类的方法。
关于mocha & chai和sinon的更多信息,可以参考以下链接:
领取专属 10元无门槛券
手把手带您无忧上云