期望表达式不会使用 Chai 抛出任何错误
Expect expression not to throw any error using Chai
我有一个功能
export function getFileContent(path: string): any {
const content = readFileSync(path);
return JSON.parse(content.toString());
}
如果我想检查表达式 getFileContent(meteFile)
是否抛出一些明确的错误,我应该写类似
的东西
expect(getFileContent(meteFile)).to.throw(new SyntaxError('Unexpected token } in JSON at position 82'));
但是有没有办法检查表达式是否没有引发任何错误?
我试过了
expect(getFileContent(metaFile)).not.to.throw();
但是报错
AssertionError: expected { Object (...) } to be a function
那么如何检查函数调用是否没有抛出任何错误?
您可以使用以下方法检查函数调用是否未抛出错误
assert.doesNotThrow
方法
这是文档中的示例
assert.doesNotThrow(fn, 'Any Error thrown must not have this message');
assert.doesNotThrow(fn, /Any Error thrown must not match this/);
assert.doesNotThrow(fn, Error);
assert.doesNotThrow(fn, errorInstance);
为了进一步了解结帐它的文档:assert.doesNotThrow
您似乎在使用 expect
,因此您可以使用 expect(fn).to.not.throw
以确保它不会引发错误。
expect(myFn).to.not.throw(); // makes sure no errors are thrown
expect(myFn).to.not.throw(SomeCustomError, "the message I expect in that error"); // not recommended by their docs
你应该看看 the docs for this。
我有一个功能
export function getFileContent(path: string): any {
const content = readFileSync(path);
return JSON.parse(content.toString());
}
如果我想检查表达式 getFileContent(meteFile)
是否抛出一些明确的错误,我应该写类似
expect(getFileContent(meteFile)).to.throw(new SyntaxError('Unexpected token } in JSON at position 82'));
但是有没有办法检查表达式是否没有引发任何错误?
我试过了
expect(getFileContent(metaFile)).not.to.throw();
但是报错
AssertionError: expected { Object (...) } to be a function
那么如何检查函数调用是否没有抛出任何错误?
您可以使用以下方法检查函数调用是否未抛出错误
assert.doesNotThrow
方法
这是文档中的示例
assert.doesNotThrow(fn, 'Any Error thrown must not have this message');
assert.doesNotThrow(fn, /Any Error thrown must not match this/);
assert.doesNotThrow(fn, Error);
assert.doesNotThrow(fn, errorInstance);
为了进一步了解结帐它的文档:assert.doesNotThrow
您似乎在使用 expect
,因此您可以使用 expect(fn).to.not.throw
以确保它不会引发错误。
expect(myFn).to.not.throw(); // makes sure no errors are thrown
expect(myFn).to.not.throw(SomeCustomError, "the message I expect in that error"); // not recommended by their docs
你应该看看 the docs for this。