iam*_*rus 5 javascript unit-testing mocha.js node.js chai
当使用 chai 进行单元测试时,我不断收到此错误消息,并且没有一个测试通过,即使它们应该通过。在这种情况下这意味着什么?谢谢。
var chai = require('chai');
var chaiHttp = require('chai-http');
var server = require('../server.js');
var should = chai.should();
var app = server.app;
var storage = server.storage;
chai.use(chaiHttp);
describe('Shopping List', function() {
it('should list items on GET', function(done) {
chai.request(app)
.get('/items')
.end(function(err, res) {
res.should.have.status(200);
res.should.be.json; // jshint ignore:line
res.body.should.be.a('array');
res.body.should.have.length(3);
res.body[0].should.be.a('object');
res.body[0].should.have.property('id');
res.body[0].should.have.property('name');
res.body[0].id.should.be.a('number');
res.body[0].name.should.be.a('string');
res.body[0].name.should.equal('Broad beans');
res.body[1].name.should.equal('Tomatoes');
res.body[2].name.should.equal('Peppers');
done();
});
});
Run Code Online (Sandbox Code Playgroud)
完整错误消息:
1) Shopping List should list items on GET:
TypeError: Cannot read property 'address' of undefined
at serverAddress (/home/ubuntu/workspace/thinkful-node-course/unit2/node_modules/chai-http/lib/request.js:252:17)
at new Test (/home/ubuntu/workspace/thinkful-node-course/unit2/node_modules/chai-http/lib/request.js:244:53)
at Object.obj.(anonymous function) [as get] (/home/ubuntu/workspace/thinkful-node-course/unit2/node_modules/chai-http/lib/request.js:216:14)
at Context.<anonymous> (test-server.js:14:8)
Run Code Online (Sandbox Code Playgroud)
发现问题:首先必须确保我正在测试的文件server.js已正确导出到test.js文件。
我还忘记将 test.js 文件放在单独的测试文件夹中。我希望错误消息不要那么含糊。当我努力修复代码本身时,让我陷入了徒劳无功的境地。