标签: node-assert

Mocha / Node:如何使用assert.rejects()?

我尝试按照文档进行操作,以便使用assert.rejects(我确实有v10以上的Node)来测试错误消息。

但它总是会过去,即使有一个荒谬的信息。我究竟做错了什么?

it("should fail but it's not", 
  async ()=> {
    let itemId = 'not an id'
    assert.rejects( 
      await ListRepo.checkById(itemId),
      {message: 'abracadabra'}                        
    )
  }
)
Run Code Online (Sandbox Code Playgroud)

更新:看来如果我返回assert.rejects,它就会起作用。但我还是不知道原因。

javascript mocha.js promise node-assert

6
推荐指数
1
解决办法
5043
查看次数

节点断言:测试错误消息

使用节点的断言模块如何测试错误消息?

throw new Error('Email is required!');
Run Code Online (Sandbox Code Playgroud)

我使用assert.throws来检查是否抛出错误:

assert.throws(myFunction, Error);
Run Code Online (Sandbox Code Playgroud)

但这并不提供检查消息的能力。

assert mocha.js node.js node-assert

5
推荐指数
1
解决办法
1517
查看次数

AssertionError:使用mocha测试async requirejs调用时缺少预期的异常

我正在为自定义requirejs加载器编写测试.在格式错误的输入上它应该抛出一个错误.

我正在使用mocha并简单node-assert地测试它:

it('throws a SyntaxError on malformed input', function(done){
    assert.throws(function(){ requirejs(['myLoader!malformedInput'], Function.prototype) }, SyntaxError);
    done();
});
Run Code Online (Sandbox Code Playgroud)

测试失败的原因是:

AssertionError:缺少预期的异常(SyntaxError)..

根据我的理解,读取断言的文档我的语法应该没问题.错误消息也有点难以理解.

我最好的猜测是,这是因为requirejs呼叫是异步的,但后来我不知道何时呼叫done这种情况?

或者我误解了requirejs处理我传递的错误的方式onload.error(e)

testing amd mocha.js requirejs node-assert

2
推荐指数
1
解决办法
2625
查看次数