2017-01-05 6 views
0

поэтому im новичок с mocha-chai вещи в nodejs env. Я не понимаю, почему я не могу получить статус ответа во время работы mochajs.Невозможно прочитать статус собственности 'undefined - Mocha Chai

вот мой код:

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'); 
}); 

каждый раз, когда я бегу мокко test.js, я всегда получаю эту ошибку: Сообщ

Uncaught TypeError: Cannot read property 'status' of undefined

ohya, я использую метод должен тоже. У меня есть еще одна ошибка. Msg like: can not-read-property-should-of-null

Я читаю эту тему.

Should js Cannot read property 'should' of 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(); 
     }); 
     }); 
+0

Это просто означает, что ваш 'res' объект не определен, поэтому он не имеет каких-либо свойств, в том числе' status' - то есть, результат не возвращается , можете ли вы выдать простое GET своей цели из командной строки и подтвердить, что он отвечает 200? – meatspace

ответ

0

вы ударяете ошибку, скорее всего ... вы должны иметь линию, подобную ниже

if(err) done(err); 

За комментарий ... это привело вас в правильном направлении. Moreso вам необходимо сделать ниже:

chai.request('http://localhost:5000').get('/api/v1/clinic') 
+0

где я должен положить эту строку кода? – gutasaputra

+0

в вашем обратном вызове .end() ... в значительной степени, где ваша прокомментированная строка. не плохая идея использовать if/else в этом блоке. Чтобы продолжить отладку, вы можете убедиться, что это не какая-то другая ошибка, обернув пробкой/catch – LostJon

+0

, я не понимаю. я следую вашей инструкции и получаю еще одно сообщение об ошибке. Ошибка: подключите ECONNREFUSED 127.0.0.1:80 – gutasaputra