Так что я новичок с вещами мокко-чай в nodejs env. Я не понимаю, почему я не могу получить статус ответа при запуске mochajs.
Вот мой код:
let chai = require('chai');
let chaiHttp = require('chai-http');
let server = require('server');
let expect = require("chai").expect;
let should = require("should");
let request = require("superagent");
let util = require("util");
chai.use(chaiHttp);
describe('API Clinic Test', function() {
it('should list ALL clinic on /api/v1/clinic GET', function(done) {
chai.request(server)
.get('http://localhost:5000/api/v1/clinic')
.end(function(err, res){
// res.should.have.status(200);
expect(res.status).to.equal(200);
done();
});
});
it('should list a SINGLE clinic on /api/v1/clinic/<id> GET');
it('should add a SINGLE clinic on /api/v1/clinic POST');
it('should update a SINGLE clinic on /api/v1/clinic/<id> PUT');
it('should delete a SINGLE clinic on /api/v1/clinic/<id> DELETE');
});
Каждый раз, когда я запускаю mocha test.js, я всегда получаю сообщение об ошибке:
Uncaught TypeError: Невозможно прочитать статус свойства undefined
Охя, я тоже использую метод должен. Я получил еще одно сообщение об ошибке, например: невозможно-прочитать-свойство-должно-из-нуля
Я читал в этой ветке.
Если js не может прочитать свойство 'should' со значением null
Вот почему я хочу изменить и использовать метод ожидания.
Не могли бы вы, ребята, помогите мне.
Благодарю вас.
::: update ::: как решить проблему? вместо использования этой строки кодов:
it('should list ALL clinic on /api/v1/clinic GET', function(done) {
chai.request(server)
.get('http://localhost:5000/api/v1/clinic')
.end(function(err, res){
// res.should.have.status(200);
expect(res.status).to.equal(200);
done();
});
});
Я использую это:
it('should list ALL clinic on /api/v1/clinic GET', function(done) {
chai.request('localhost:5000') .get('/api/v1/clinic')
.end(function(err, res){
// res.should.have.status(200);
expect(res.status).to.equal(200);
done();
});
});
2 ответа
Вы, скорее всего, столкнулись с ошибкой ... у вас должна быть строка, подобная приведенной ниже
if(err) done(err);
Согласно комментариям ... это привело вас в правильном направлении. Более того, вам нужно было сделать следующее:
chai.request('http://localhost:5000').get('/api/v1/clinic')
chai.request('http://localhost:5000').get('/api/v1/clinic')
В моем случае я забыл экспортировать модуль вроде export defaul mymodule
. Так что проверьте это.
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Имейте в виду, что JavaScript — это НЕ то же самое, что Java! Включите все ярлыки, относящиеся к вашему вопросу; например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [svelte] и т. д.
res
не определен, поэтому у него нет никаких свойств, включаяstatus
, т.е. ваш результат не возвращается. Можете ли вы выполнить простой GET для своей цели из командной строки и подтвердить, что она отвечает 200?