【发布时间】:2020-06-08 15:51:43
【问题描述】:
我正在尝试为下面示例中的类编写单元测试。
const DependencyClass = require('../../../../Dependency/src/index').DependencyClass;
const string = 'test';
class FirstClass {
async getResult() {
const dependency = new DependencyClass();
const result = dependency.getResult(string);
return result;
}
}
module.exports = {
FirstClass
};
我正在尝试对 DependencyClass 类的 getResult() 方法进行存根,以便在从我的单元测试中调用它时返回一个预定义的值,但不知道该怎么做。
const FirstClass = require('../../lib/FirstClass ').FirstClass;
describe('FirstClass.js', function() {
describe('getResult()', function() {
it('throws an exception if the result is not returned', async function() {
const firstClass = new FirstClass();
sinon.replace(firstClass.getResult, 'DependencyClass.getResult', function() {
const fakeResult =
[
'test1',
'test2'
];
return fakeResult;
});
const expectedResult =
[
'test1',
'test2'
];
const result = await firstClass.getResult();
expect(result).to.deep.eq(expectedResult);
});
});
});
afterEach(function() {
sinon.restore();
});
我知道DependencyClass.getResult 不是firstClass.getResult 对象的属性,但我很难理解在这种情况下应该如何使用 sinon。
【问题讨论】:
标签: javascript node.js unit-testing chai sinon