使用 chai 测试期间无法将错误与抛出匹配

艾登·加拉格尔

我正在尝试编写一个测试用例来捕获错误“错误:请提供pitchWidth 和pitchHeight”。但是我似乎无法期望将投掷作为成功的测试。

代码:

mocha.describe('testValidationOfBadInputData()', function() {
mocha.it('init game fails on pitch height', async() => {
  let t1location = './init_config/team1.json'
  let t2location = './init_config/team2.json'
  let plocation = './test/input/badInput/badPitchHeight.json'
  // let badFn = await validation.initGame(t1location, t2location, plocation)

  expect(await validation.initGame(t1location, t2location, plocation)).to.throw()
}) })

输出:

1) testValidationOfBadInputData()
       init game fails on pitch height:
     Error: Please provide pitchWidth and pitchHeight
      at Object.validatePitch (lib/validate.js:56:11)
      at Object.initiateGame (engine.js:18:12)
      at Object.initGame (test/lib/validate_tests.js:9:29)       

其他尝试也失败了:

1)

expect(await validation.initGame(t1location, t2location, plocation)).to.throw(Error, 'Please provide pitchWidth and pitchHeight');

2)

expect(await validation.initGame.bind(t1location, t2location, plocation)).to.throw();

不确定我做错了什么,文档似乎并不明显。https://www.chaijs.com/api/bdd/#method_throw

async function initGame(t1, t2, p) {       
  let team1 = await common.readFile(t1)       
  let team2 = await common.readFile(t2)       
  let pitch = await common.readFile(p)       
  let matchSetup = engine.initiateGame(team1, team2, pitch)     
 return matchSetup  
}

以上是我正在调用的函数。

艾登·加拉格尔

通过执行以下操作,我能够创建正确的测试:

 mocha.describe('testValidationOfBadInputData()', function() {
    mocha.it('init game fails on pitch height', async() => {
      let t1location = './init_config/team1.json'
      let t2location = './init_config/team2.json'
      let plocation = './test/input/badInput/badPitchHeight.json'
      try{
        await validation.initGame(t1location, t2location, plocation); 
      }catch(err){
        expect(err).to.be.an('Error');
        expect(err.toString()).to.have.string('Error: Please provide pitchWidth and pitchHeight')
      }
    })
  })

正如马特所描述的,我试图在期望的函数中调用该函数。这需要一个异步函数(因为我正在使用等待)但随后失败了

UnhandledPromiseRejectionWarning: 错误:请提供 pitchWidth 和 pitchHeight

这让我想到将它放入 try catch 块中,然后处理我们返回的错误。

在 catch 块中;

  1. 期望输出是错误

    期望(错误).to.be.an('错误');

  2. 将错误的字符串版本与预期输出匹配

    期望(err.toString()).to.have.string('错误:我的错误')

这可能不是最好的解决方案。很高兴接受其他答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Chai。测试抛出的错误

来自分类Dev

使用Mocha / Chai测试JS异常

来自分类Dev

使用Chai.js的测试失败

来自分类Dev

如何使用Mocha Chai测试Vue方法

来自分类Dev

使用Chai进行MongoDB测试失败

来自分类Dev

使用 Mocha 和 Chai 测试 React

来自分类Dev

如何使用 chai 和 sinon 测试方法是否重新抛出现有错误

来自分类Dev

使用Mocha Chai测试node.js中引发的错误

来自分类Dev

(Rails) update_attributes 在不使用密码的集成测试期间抛出错误(需要密码)

来自分类Dev

如何使用Mocha / chai / chai-as-promised测试ES7异步功能

来自分类Dev

将chai-as-promised和chai-bignumber一起使用会失败

来自分类Dev

如何使用chai和mocha验证抛出的JavaScript异常?

来自分类Dev

使用setInterval测试功能时,Mocha和Chai测试失败

来自分类常见问题

Chai:如何使用“ should”语法测试未定义

来自分类Dev

如何在Chai的单元测试中使用localStorage

来自分类Dev

如何使用chai和mocha测试子进程?

来自分类Dev

如何使用chai和mocha测试数组数组中的元素?

来自分类Dev

使用Mocha / chai进行测试时获取UnhandledPromiseRejectionWarning

来自分类Dev

使用Mocha,Chai,chaiAsPromised和Sinon测试JS Promise

来自分类Dev

如何使用产量生成器测试 chai 异常

来自分类Dev

使用 mocha 和 chai 测试对象数组中的对象键

来自分类Dev

使用 Mocha/Chai/Sinon 测试 document.createElement('a')

来自分类Dev

如何在 nightwatch.js 测试中使用 chai 的期望

来自分类Dev

使用 Mocha 和 chai 库测试 nodejs 方法

来自分类Dev

使用Mocha和Chai捕捉范围外的错误

来自分类Dev

无法在Nightwatch的Chai.js中使用期望

来自分类Dev

期望表达式不会使用Chai抛出任何错误

来自分类Dev

如何使用Intern在功能测试期间报告JavaScript错误?

来自分类Dev

测试期间无法使用MemoryRouter导航到路径

Related 相关文章

  1. 1

    如何使用Chai。测试抛出的错误

  2. 2

    使用Mocha / Chai测试JS异常

  3. 3

    使用Chai.js的测试失败

  4. 4

    如何使用Mocha Chai测试Vue方法

  5. 5

    使用Chai进行MongoDB测试失败

  6. 6

    使用 Mocha 和 Chai 测试 React

  7. 7

    如何使用 chai 和 sinon 测试方法是否重新抛出现有错误

  8. 8

    使用Mocha Chai测试node.js中引发的错误

  9. 9

    (Rails) update_attributes 在不使用密码的集成测试期间抛出错误(需要密码)

  10. 10

    如何使用Mocha / chai / chai-as-promised测试ES7异步功能

  11. 11

    将chai-as-promised和chai-bignumber一起使用会失败

  12. 12

    如何使用chai和mocha验证抛出的JavaScript异常?

  13. 13

    使用setInterval测试功能时,Mocha和Chai测试失败

  14. 14

    Chai:如何使用“ should”语法测试未定义

  15. 15

    如何在Chai的单元测试中使用localStorage

  16. 16

    如何使用chai和mocha测试子进程?

  17. 17

    如何使用chai和mocha测试数组数组中的元素?

  18. 18

    使用Mocha / chai进行测试时获取UnhandledPromiseRejectionWarning

  19. 19

    使用Mocha,Chai,chaiAsPromised和Sinon测试JS Promise

  20. 20

    如何使用产量生成器测试 chai 异常

  21. 21

    使用 mocha 和 chai 测试对象数组中的对象键

  22. 22

    使用 Mocha/Chai/Sinon 测试 document.createElement('a')

  23. 23

    如何在 nightwatch.js 测试中使用 chai 的期望

  24. 24

    使用 Mocha 和 chai 库测试 nodejs 方法

  25. 25

    使用Mocha和Chai捕捉范围外的错误

  26. 26

    无法在Nightwatch的Chai.js中使用期望

  27. 27

    期望表达式不会使用Chai抛出任何错误

  28. 28

    如何使用Intern在功能测试期间报告JavaScript错误?

  29. 29

    测试期间无法使用MemoryRouter导航到路径

热门标签

归档