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

标签 javascript node.js unit-testing jasmine

即使抛出错误,此代码也会失败。

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(...),

改用匿名函数:

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

关于javascript - 即使抛出错误,Jasmine toThrow 也不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39377523/

相关文章:

javascript - 单击 Canvas 无效

node.js - mongod 在 linux mint 上面临文件权限

node.js - NodeJS 像 PHP 一样人性化多维数组(键字符串)

Python - 单击命令行单元测试用例以获取来自命令行功能的输入提示

unit-testing - 实现一个假的 NHibernate 存储库

android - 如何调整 Robolectric 测试的屏幕密度?

javascript - NodeJs - [Restful API] 如何分离不同js文件中的app get方法?

javascript - "socket.io.js"文件位于哪里?

javascript - 确定 meteor 中简单模式的字段类型

Node.js request.body 未定义