首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AssertionError崩溃Mocha

AssertionError崩溃Mocha
EN

Stack Overflow用户
提问于 2013-09-23 14:09:39
回答 1查看 5.2K关注 0票数 6

我使用Mocha运行单元测试,而不是在第一个错误时显示记者Mocha中抛出的所有AssertionErrors。有什么建议吗?

我在崩溃中遇到的错误是:

代码语言:javascript
复制
/Users/Robert/Code/JRJ/Server/node_modules/chai/lib/chai/assertion.js:106
      throw new AssertionError(msg, {
            ^
AssertionError: expected 200 to equal 202
npm ERR! weird error 8
npm ERR! not ok code 0

不管我是使用柴还是内置的断言库,情况都是一样的。我使用以下命令运行Mocha (我使用npm test运行它):

代码语言:javascript
复制
mocha --reporter 'spec' --recursive

我使用的库版本是:

  • 节点: 0.10.18
  • 摩卡: 1.12.0
  • 柴: 1.8.0
  • hapi: 1.10.0

测试代码:

代码语言:javascript
复制
    var hapi = require('hapi'),
        expect = require('chai').expect,
        assert = require('assert');

    describe("Customer API", function(){
      var server = require('../../../../src/apis/customer');

      //works as expected 
      describe('simpleExample', function(){
        it("should cause a test failure", function(done){
            expect(200).to.equal(202);
            done();
        });
      });

      //crashes Mocha
      describe('Authentication', function(){
        it('Should get user token', function(done){
          server.inject("/auth?username=test@test.com&password=testa", function(res){
            expect(res.statusCode).to.equal(202); //returns 200, crashes Mocha (the expected 202 is intentional to cause an assertion error)
            //assert.ok(res.statusCode === 202);
            expect(res.payload).to.be.a('string');
            expect(res.payload).to.have.length(16);
            done();
          });
        });
      });
    });
EN

回答 1

Stack Overflow用户

发布于 2013-09-24 11:11:14

这是因为摩卡的工作方式。异步调用中的异常需要捕获并传递给已完成的回调,这甚至包括AssertionErrors。Mocha文档中有一个错误,我打开了一个GitHub问题来解决这个问题(https://github.com/visionmedia/mocha/issues/982)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18961434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档