2016-02-11 3 views
0

Я пытаюсь сделать TDD для API-интерфейсов Rest, которые я создавал. Новое в NodeJS.ожидать (js) не работает внутри суперагента (js)

Я создал API Rest, и в ответ я хочу выполнить все проверки expect. Чтобы сделать запрос HTTP, я использую SuperagentJS (также попробовал RequestJS).

Вот как мой код выглядит следующим образом (Отрывок только, не весь код)

var expect = require("chai").expect; 
var request = require("superagent"); 

describe("Creation of New Entity", function(){ 
    it("Create a New Entity", function(){ 
     request 
      .get("http://localhost") 
      .end(function(err, httpResponse){ 
       expect("1234").to.have.length(3);//equals(500); 
       expect(200).to.equals(200); 
     }); 
    }); 
}); 

Независимо от того, что я стараюсь, мокко всегда дает положительный результат. (Все испытания прошли)

Пожалуйста, расскажите, что мне здесь не хватает. Что делать, чтобы реализовать тестовые примеры на httpRespnse. Я уверен, что запрос работает нормально, потому что всякий раз, когда я использую console.log(httpResponse.text), он возвращает домашнюю страницу apache по умолчанию.

ответ

2

Все сети в node.js являются асинхронными, поэтому вы должны использовать асинхронный аромат мокки it("Create a New Entity", function(done) { и вызвать обратный вызов done, когда ваш тест будет выполнен.

var expect = require("chai").expect; 
var request = require("superagent"); 

describe("Creation of New Entity", function(){ 
    it("Create a New Entity", function(done){ 
     request 
      .get("http://localhost") 
      .end(function(err, httpResponse){ 
       expect(err).not.to.exist(); 
       expect("1234").to.have.length(3);//equals(500); 
       expect(200).to.equals(200); 
       done() 
     }); 
    }); 
}); 
+0

Спасибо, вам нужно много узнать о том, как работает асинхронный узел. Любые ссылки, которые вы можете предложить? –

+0

[Учебная школа для учеников] (https://github.com/workshopper/learnyounode) - хорошее место для начала. –

Смежные вопросы