【发布时间】:2018-03-06 17:28:07
【问题描述】:
我有一些类似的代码:
module.exports = {
idCheck: function(errors) {
errors.some( (error) => {
if (error.parentSchema.regexp === '/^((?!\\bMyId\\b).)*$/i') {
this._recordError('IDCHECK');
}
});
}
};
我正在尝试用这个玩笑来测试它:
const IDCheck = require(
'./IDCheck'
);
let errors = [
{
parentSchema: {
regexp: '/^((?!\\bMyId\\b).)*$/i'
}
}
];
describe('IDCheck', () => {
afterEach(() => {
jest.restoreAllMocks();
});
it('calls _recordError with IDCHECK', () => {
jest.spyOn(this, '_recordError');
IDCheck.idCheck(errors);
});
});
但是,当我开玩笑时,我得到了
无法窥探 _recordError 属性,因为它不是函数;取而代之的是未定义
有没有一种方法可以模拟、测试 _recordError() 是否已被调用或未调用并使用正确的参数,而不将 _recordError 作为参数传递?
【问题讨论】:
-
我觉得应该是
jest.spyOn(IDCheck, '_recordError') -
不,同样的错误。