在使用node.js进行测试时,我遇到了以下问题:我无法解决该错误 26传球(2秒) 1失败
区域路线的综合测试 区域路径获取方法的测试 未找到测试区域: 未捕获的断言错误:应{result:null}具有键“error”、“code”和“message”在使用node.js进行测试时,我遇到了以下问题:我无法解决该错误 26传球(2秒) 1失败,node.js,npm,Node.js,Npm,区域路线的综合测试 区域路径获取方法的测试 未找到测试区域: 未捕获的断言错误:应{result:null}具有键“error”、“code”和“message” 预期-实际 [ “结果” “代码” “错误” “消息” ] 在测试中。(test\integration\u tests\areas\areas.integration.test.js:62:36) 在Test.assert(node_modules\supertest\lib\Test.js:181:6) 在localA
- 预期-实际
- “结果”
- “代码”
- “错误”
- “消息” ]
mocha'./test/***.test.js'--退出
npm错误!退出状态1
npm错误!
npm错误!在pilc上失败了-backend@0.0.1测试脚本。
npm错误!这可能不是npm的问题。上面可能还有其他日志输出
npm错误!此运行的完整日志可在以下位置找到:
npm错误!C:\Users\Colmotica\AppData\Roaming\npm-cache\u logs\2021-05-28T15\u 37\u 41\u 775Z-debug.log'
你能包括测试代码吗?
const request = require('supertest');
const { describe, it, after } = require('mocha');
const app = require('../../../app');
const superuserToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjEsImxldmVsIjoic3VwZXJ1c2VyIiwiaWF0IjoxNjIyMTI4MDEwLCJleHAiOjE2MjQ3MjAwMTB9.8tgntmtyJxkUtJOCwiMyks8kl7XHlKeC36dkNc5w9XU';
const laborToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjQsImxldmVsIjoibWFpbnRlbmFuY2UiLCJpYXQiOjE2MjA4Mjk5MzMsImV4cCI6MTYyMzQyMTkzM30.rQa4i6gaQUCjVbcXV-QXHy3OUeM14aB7Byc391FTTeI';
const notFoundAreaId = 9990;
describe('Integration test for area routes', () => {
describe('Test for areas routes GET method', () => {
it('Test for get all areas', (done) => {
request(app)
.get('/api/areas')
.set('Content-Type', 'application/json')
.set('Authorization', `Bearer ${superuserToken}`)
.expect(200)
.end((error, res) => {
const response = res.body;
expect(response).to.have.property('result');
expect(response.result).to.be.an('array');
expect(response.result.map((result) => {
expect(result).to.have.key('areaId', 'name');
expect(result.areaId).to.be.a('number');
expect(result.name).to.be.a('string');
}));
done(error);
});
});
it('Test for get area by id', (done) => {
request(app)
.get('/api/areas/1')
.set('Content-Type', 'application/json')
.set('Authorization', `Bearer ${superuserToken}`)
.expect(200)
.end((error, res) => {
const response = res.body;
expect(response).to.have.property('result');
expect(response.result).to.be.an('object');
expect(response.result).to.have.key('areaId', 'name');
expect(response.result.areaId).to.be.a('number');
expect(response.result.name).to.be.a('string');
done(error);
});
});
it('Test area is not a found', (done) => {
request(app)
.get(`api/areas/${notFoundAreaId}`)
.set('Content-Type', 'application/json')
.set('Authorization', `Bearer ${superuserToken}`)
.expect(404)
.end((err, res) => {
const response = res.body;
expect(response).to.have.keys('error', 'code', 'message');
expect(response.error).to.be.a('boolean');
expect(response.code).to.be.a('string');
expect(response.message).to.be.a('string');
expect(response.error).to.be.equal(true);
expect(response.code).to.be.equal('AREA_NOT_FOUND');
expect(response.message).to.be.equal(`The area '${notFoundAreaId}' does not exist`);
done();
});
});
it('Test area is not authorized', (done) => {
request(app)
.get('/api/areas')
.set('Content-Type', 'application/json')
.set('Authorization', `Bearer ${laborToken}`)
.expect(403)
.end((error, res) => {
const response = res.body;
expect(response).to.have.keys('error', 'code', 'message');
expect(response.error).to.be.a('boolean');
expect(response.code).to.be.a('string');
expect(response.message).to.be.a('string');
expect(response.error).to.be.equal(true);
expect(response.code).to.be.equal('AUTHORIZATION_ERROR');
expect(response.message).to.be.equal(`You don't have permission to access this resource`);
done(error);
});
});
it('Test areaId is not a number', (done) => {
request(app)
.get('/api/areas/string')
.set('Content-Type', 'application/json')
.set('Authorization', `Bearer ${superuserToken}`)
.expect(422)
.end((error, res) => {
const response = res.body;
expect(response).to.have.keys('code', 'message');
expect(response.code).to.be.a('string');
expect(response.message).to.be.a('string');
expect(response.code).to.be.equal('INVALID_PARAMS_VALUE_CONTENT');
expect(response.message).to.be.equal(`"areaId" must be a number`);
done(error);
});
});
});
after((done) => {
done();
});
});