相关疑难解决方法(0)

如何编写一个期望在Jasmine中抛出Error的测试?

我正在尝试为Jasmine测试框架编写测试,该测试期望出现错误.目前我正在使用GitHubJasmine Node.js集成.

在我的Node模块中,我有以下代码:

throw new Error("Parsing is not possible");
Run Code Online (Sandbox Code Playgroud)

现在我尝试编写一个期望这个错误的测试:

describe('my suite...', function() {
    [..]
    it('should not parse foo', function() {
    [..]
        expect(parser.parse(raw)).toThrow(new Error("Parsing is not possible"));
    });
});
Run Code Online (Sandbox Code Playgroud)

我也试过了Error()一些其他的变种,只是无法弄清楚如何使它工作.

javascript testing node.js jasmine

457
推荐指数
9
解决办法
18万
查看次数

Jasmine的toThrow匹配器是否要求将参数包含在匿名函数中?

https://github.com/pivotal/jasmine/wiki/Matchers上的文档包括以下内容:

expect(function(){fn();}).toThrow(e);
Run Code Online (Sandbox Code Playgroud)

正如在讨论这个问题,下面就无法工作,因为我们想要一个函数对象传递给expect,而不是调用的结果fn()

expect(fn()).toThrow(e);
Run Code Online (Sandbox Code Playgroud)

问题1:以下工作如何?

expect(fn).toThrow(e);
Run Code Online (Sandbox Code Playgroud)

问题2:如果我thing用方法定义了一个对象,doIt下面的工作是否正常?

expect(thing.doIt).toThrow(e);
Run Code Online (Sandbox Code Playgroud)

(2a:如果是这样,有没有办法将参数传递给doIt方法?)

根据经验,答案似乎是肯定的,但我不相信我对js范围的理解足以确定.

谢谢!

javascript jasmine

37
推荐指数
4
解决办法
2万
查看次数

标签 统计

jasmine ×2

javascript ×2

node.js ×1

testing ×1