即使抛出错误,Jasmine toThrow也不起作用

即使发生错误,此代码也会失败。

it('should throw error when foo config value is falsey', (done) => { const config = { foo: null, bar: 'some-name' }; expect(quux.withConfig(config).load('*', (err, inst) => { done(); })).toThrow(); }); 

我也试过这个

 it('should throw error when foo config value is falsey', (done) => { const config = { foo: null, bar: 'some-name' }; expect(SelfServiceCompletedJobStore.withConfig(config).load('*', (err, inst) => { })).toThrow(); done(); }); 

错误信息:

 should throw error when foo config value is falsey - Error: Requires a non-empty foo:String 

你应该将一个函数传递给expect(…)。 以下代码:

 expect(quux.withConfig(config).load('*', (err, inst) => { done(); })).toThrow(); 

正在尝试将呼叫的结果传递给期望(…),

改用一个匿名函数:

 expect(function(){ quux.withConfig(config).load('*', (err, inst) => { done(); }); }).toThrow();