Here is my error codes:
FAIL build/__test__/FuncOps.CheckFunctionExistenceByString.test.js
●
expect(CheckFunctionExistenceByStr(
'any string', 'FunctionThatDoesNotExistsInString'
)).toThrow();
Function FunctionThatDoesNotExistsInString does not exists in string.
at CheckFunctionExistenceByStr (build/FuncOps.js:35:15)
at Object.<anonymous> (build/__test__/FuncOps.CheckFunctionExistenceByString.test.js:12:51)
at new Promise (<anonymous>)
at <anonymous>
As you can see the error did indeed occurred: Function FunctionThatDoesNotExistsInString does not exists in string.. However it is not captured as a pass in Jest.
Here is my codes:
test(`
expect(CheckFunctionExistenceByStr(
'any string', 'FunctionThatDoesNotExistsInString'
)).toThrow();
`, () => {
expect(CheckFunctionExistenceByStr(
'any string', 'FunctionThatDoesNotExistsInString'
)).toThrow();
}
);
Advertisement
Answer
expect(fn).toThrow() expects a function fn that, when called, throws an exception.
However you are calling CheckFunctionExistenceByStr immediatelly, which causes the function to throw before running the assert.
Replace
test(`
expect(CheckFunctionExistenceByStr(
'any string', 'FunctionThatDoesNotExistsInString'
)).toThrow();
`, () => {
expect(CheckFunctionExistenceByStr(
'any string', 'FunctionThatDoesNotExistsInString'
)).toThrow();
}
);
with
test(`
expect(() => {
CheckFunctionExistenceByStr(
'any string', 'FunctionThatDoesNotExistsInString'
)
}).toThrow();
`, () => {
expect(() => {
CheckFunctionExistenceByStr(
'any string', 'FunctionThatDoesNotExistsInString'
)
}).toThrow();
}
);