0
class TestObject {
constructor(value) {
if (value === null || value === undefined) {
throw new Error('Expect a value!');
}
}
}
describe('test the constructor',() => {
test('it works',() => {
expect(() => {
new TestObject();
}).toThrow();
});
test('not work',() => {
expect(new TestObject()).toThrow();
});
});
2測試用例在這裏,一個工作,另一個不工作。當在構造函數中直接創建ES6類的實例時,爲什麼Jest的toThrow不起作用?
發生故障的消息爲not work
一個是以下幾點:
●測試構造>不行
期待值!
at new TestObject (tests/client/utils/aaa.test.js:4:11) at Object.<anonymous> (tests/client/utils/aaa.test.js:17:12) at Promise (<anonymous>) at <anonymous> at process._tickCallback (internal/process/next_tick.js:188:7)
爲什麼我需要來包裝調用函數調用,我們並不需要包裝時該函數只返回一個普通值,甚至是一個承諾,我們可以使用async/await
檢查在expect()
而不是在expect()
內創建一個函數。
這裏發生了什麼事?