Questions tagged «chai»

Chai是用于Node.js和浏览器的BDD / TDD断言库,可以与任何Javascript测试框架一起使用。

7
摩卡/柴的Expect.to.throw不能捕获抛出的错误
我在让Chai的expect.to.thrownode.js应用程序进行测试时遇到问题。测试会因抛出的错误而不断失败,但是如果我将测试用例包装在try和catch中并断言所捕获的错误,它将起作用。 难道expect.to.throw不喜欢的工作,我认为它应该还是什么? it('should throw an error if you try to get an undefined property', function (done) { var params = { a: 'test', b: 'test', c: 'test' }; var model = new TestModel(MOCK_REQUEST, params); // neither of these work expect(model.get('z')).to.throw('Property does not exist in model schema.'); expect(model.get('z')).to.throw(new Error('Property does not …


7
在摩卡测试中,调用异步函数时如何避免超时错误:超过2000ms的超时
在我的节点应用程序中,我正在使用mocha测试我的代码。使用mocha调用许多异步函数时,出现超时错误(Error: timeout of 2000ms exceeded.)。我该如何解决? var module = require('../lib/myModule'); var should = require('chai').should(); describe('Testing Module', function() { it('Save Data', function(done) { this.timeout(15000); var data = { a: 'aa', b: 'bb' }; module.save(data, function(err, res) { should.not.exist(err); done(); }); }); it('Get Data By Id', function(done) { var id = "28ca9"; module.get(id, …
200 node.js  mocha  chai 


4
我如何正确地用摩卡咖啡和柴测试诺言?
以下测试的行为异常: it('Should return the exchange rates for btc_ltc', function(done) { var pair = 'btc_ltc'; shapeshift.getRate(pair) .then(function(data){ expect(data.pair).to.equal(pair); expect(data.rate).to.have.length(400); done(); }) .catch(function(err){ //this should really be `.catch` for a failed request, but //instead it looks like chai is picking this up when a test fails done(err); }) }); 我应该如何正确处理被拒绝的承诺(并进行测试)? 我应该如何正确处理失败的测试(即:expect(data.rate).to.have.length(400);? 这是我正在测试的实现: …
148 node.js  promise  mocha  chai 

8
NodeJS UnhandledPromiseRejection警告
因此,我正在测试依赖于事件发射器的组件。为此,我想出了将Promises与Mocha + Chai结合使用的解决方案: it('should transition with the correct event', (done) => { const cFSM = new CharacterFSM({}, emitter, transitions); let timeout = null; let resolved = false; new Promise((resolve, reject) => { emitter.once('action', resolve); emitter.emit('done', {}); timeout = setTimeout(() => { if (!resolved) { reject('Timedout!'); } clearTimeout(timeout); }, 100); }).then((state) …

6
Mocha API测试:收到“ TypeError:app.address不是函数”
我的问题 我已经编写了一个非常简单的CRUD API,并且最近开始使用编写了一些测试代码chai,chai-http但是使用进行测试时遇到了问题$ mocha。 当我运行测试时,在外壳上出现以下错误: TypeError: app.address is not a function 我的密码 这是我的一项测试(/tests/server-test.js)的示例: var chai = require('chai'); var mongoose = require('mongoose'); var chaiHttp = require('chai-http'); var server = require('../server/app'); // my express app var should = chai.should(); var testUtils = require('./test-utils'); chai.use(chaiHttp); describe('API Tests', function() { before(function() { mongoose.createConnection('mongodb://localhost/bot-test', myOptionsObj); …

9
Chai:如何使用“ should”语法测试未定义
在本教程中使用chai测试angularjs应用程序的基础上,我想使用“应该”样式为未定义的值添加测试。这将失败: it ('cannot play outside the board', function() { scope.play(10).should.be.undefined; }); 错误为“ TypeError:无法读取未定义的属性”应该”,但测试以“期望”样式通过: it ('cannot play outside the board', function() { chai.expect(scope.play(10)).to.be.undefined; }); 我如何使其与“应该”一起使用?

2
什么时候应该在酶/反应测试中使用渲染和浅化?
在发布此问题之前,我曾尝试在sqa stackexchange中进行搜索,但未找到有关浅层和渲染的文章,因此希望有人能在这里为我提供帮助。 什么时候应该在测试反应组件时使用浅层渲染?根据airbnb文档,我对两者的区别提出了一些意见: 由于浅层将组件作为一个整体进行测试,因此应将其用于“父级”组件。(例如桌子,包装纸等) 渲染用于子组件。 我问这个问题的原因是,我很难确定应该使用哪一个(尽管文档说它们非常相似) 那么,我怎么知道在特定情况下使用哪个呢?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.