2015-11-16 4 views
1

Я собираюсь покинуть this учебник, пытаясь сделать тесты с мокко, Supertest и Should.js.Mocha/Если «не определено не является функцией»

У меня есть следующий базовый тест, чтобы создать пользователя через PUT конечную точку, которая принимает это данные в заголовках.

describe('User Routes', function() { 
    it('should allow me to make my user', function (done) { 
     request(url) 
     .put('/users') 
     .set(myCreds) 
     // end handles the response 
     .end(function(err, res) { 
       if (err) { 
       throw err; 
       } 
       // this is should.js syntax, very clear 
       res.should.have.status(201); 
       done(); 
      }); 
     }); 

Однако, в то время как конечная точка делает триггер, и пользователь не получить сделал, код выдает ошибку, что should не определен ... Uncaught TypeError: undefined is not a function.

Я

var should = require('should'); 
var assert = require('assert'); 
var request = require('supertest'); 

В верхней части файла, так почему бы ей быть определено?

+0

1.) Просто исключаю, вы уверены, что вы установили 'require'd пакеты? ('НОЙ установка --save-DEV должен утверждать supertest') 2.) Какое значение' res', когда исключение? –

ответ

2

Вы вызываете должны неправильно, попробуйте следующее:

res.should.have.property('status', 201) 

или

res.status.should.be.equal(201) 

или

should.equal(res.status, 201) 

или установить should-http.

+0

Ах ладно, спасибо. 'should.not' так много доверял учебнику. Принят, когда это позволит мне. – Jackson