简体   繁体   English

摩卡:未捕获的AssertionError

[英]Mocha: Uncaught AssertionError

I have following API test function: 我有以下API测试功能:

  it('should return details of last order', function(done) { tempUrl="/rest/v1/user/orders/"+dineInOrderDetails[0]; request .get(tempUrl) .set(config.headers) .set('Authorization', 'Bearer ' + auth_token) .end(function(err,res){ logger.info(config.logToConsole(res.request.url,res.request._data)); assert.equal(res.status,200); assert.equal(res.body.order.uuid, dineInOrderDetails[0]); assert.equal(res.body.order.totalGross, dineInOrderDetails[1]); assert.equal(res.body.order.totalAmount, dineInOrderDetails[2]); done(err); }); }); 

If assertion failed in console it returned me 如果断言在控制台中失败,它将返回我

      Uncaught AssertionError: expected '6.95' to equal '36.90'
  + expected - actual

  -6.95
  +36.90

Best way to avoid uncaught assertion error is one try/catch in everyone test function for all asertion lines? 避免未捕获的断言错误的最佳方法是对所有断言行的每个测试函数进行一次try / catch? Or can i do it better? 还是我可以做得更好?

  it('should return details of last order2', function(done) { tempUrl="/rest/v1/user/orders/"+dineInOrderDetails[0]; request .get(tempUrl) .set(config.headers) .set('Authorization', 'Bearer ' + auth_token) .end(function(err,res){ try{ logger.info(config.logToConsole(res.request.url,res.request._data)); assert.equal(res.status,200); assert.equal(res.body.order.uuid, dineInOrderDetails[0]); assert.equal(res.body.order.totalGross, dineInOrderDetails[1]); assert.equal(res.body.order.totalAmount, dineInOrderDetails[2]); done(err); } catch(e){ done(e); } }); }); 

好的,我们可以将消息放在断言行中,并且控制台中没有未捕获的断言错误

assert.equal(res.body.order.totalGross, dineInOrderDetails[1],'assertion alert');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM