当前位置: 首页 > 面试题库 >

如何编写一个期望在Jasmine中引发错误的测试?

孔砚
2023-03-14
问题内容

我正在尝试为Jasmine测试框架编写测试,该测试会出现错误。目前,我正在使用来自GitHub的Jasmine Node.js集成。

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

throw new Error("Parsing is not possible");

现在,我尝试编写一个预期出现此错误的测试:

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

我也尝试Error()了其他一些变体,只是想不通如何使其工作。


问题答案:

尝试改用匿名函数:

expect( function(){ parser.parse(raw); } ).toThrow(new Error("Parsing is not possible"));

您应该将函数传递给expect(...)调用。您的错误代码:

// incorrect:
expect(parser.parse(raw)).toThrow(new Error("Parsing is not possible"));

正在尝试实际 调用 parser.parse(raw)以将结果传递到expect(...)



 类似资料:
  • 我正在测试此功能: 这是我的测验

  • 问题内容: 我刚刚跳到另一个项目,并且基本上,我被要求编写单元测试。因为我已经了解Protractor的e2e测试,所以我现在切换到Karma和Jasmine进行单元测试。我已经下载了业力,茉莉花,业力茉莉花和业力铬发射器。我也安装了角angular,所以应该准备开始了。我已经在互联网上阅读了很多东西,但是现在,我真正需要的是一个真实应用程序的具体示例,以弄清楚如何开始编写测试。我不需要简单的示例

  • 我试图用Jasmine为Angularjs编写单元测试。这是我的控制器: 和测试 测试失败,即使我试图测试期望(true). toBe(true); 茉莉花,因果报应,棱角分明的嘲弄都在我的索引里。jasmine调试页面中的html,还有测试脚本。 我发现如果删除beforeach()块,expect(true)。托比(真的)通过了。 下面是一个错误:

  • 我正在用frisby创建HTTP测试.js它可以在jasmine.js之上工作。 我还必须创建一些mongoDB对象进行测试。问题是当我想清理这些数据库对象时。当其中一个期望失败时,我想拦截它并调用我自己的清理函数。这意味着在每次失败的测试之后,我将不能从数据库中删除测试对象。 jasmine中的后每个函数不能正常工作,jasmine还不支持后所有或前所有。这就是为什么我今天进行测试的原因。 我想

  • 问题内容: 我创建了一个 MySQL 函数,如果为参数传递的值无效,我想引发一个错误。在 MySQL 函数中引发错误的选项有哪些? 问题答案: MySQL 5.5 引入了信号,类似于其他语言中的异常: http://dev.mysql.com/doc/refman/5.5/en/signal.html 例如,在mysql命令行客户端中:

  • jasmine:在jasmine指定的超时内没有调用异步回调。DEFAULT_TIMEOUT_INTERVAL 测试window.post消息指令 用Jasmine async测试postMessage不起作用 我有下面的代码,我正在接收下面的输出。 在jasmine.DEFAULT\u timeout\u INTERVAL指定的超时内未调用异步回调 myService在父描述函数中定义。正如我所