2014-10-01 2 views
0

У меня настроено мое приложение, так что если я запустил node app.js, все запустится. Я пытаюсь проверить, что подключение моего приложения работает правильно, используя модульные тесты. То, что я до сих пор:Как проверить подключение приложения с помощью express, nodeJS и Mocha

var options = { 
    url: 'http://localhost', 
    port: 8080, 
}; 
var app = require("../app.js"); 
var should = require('should'); 
var assert = require("assert"); 
var async = require('async'); 

it ('tests the ok connection of the app by checking that it is listening on port 8080', function(dont) { 
    request(options,app) 
    .get('/') 
    .expect(200) 
    .end(function (err, res) { 
    res.header['location'].should.include('/') 
    res.text.should.include('Listening on port 8080'); 
    done(); 
    }); 
}); 

Я получаю сообщение об ошибке Error: options.uri is a required argument, поэтому я добавил var options. Теперь я получаю сообщение об ошибке TypeError: Object #<Request> has no method 'get'.

Как правильно может проверить, что у меня есть хорошее соединение (200), что я нахожусь на правой странице ('/') и что он регистрирует сообщение Listening on port 8080 на связи?

Спасибо!

+0

Вам нужно использовать только 'request (app)' без параметров. Также 'should' не имеет' .include', вам нужно использовать '.containEql'. –

ответ

0

Для TypeError убедитесь, что вы используете supertest, а не что-то другое, как request. Причина этого в том, что модуль request не предоставляет .expect() и другие функции.

+1

Уход, чтобы объяснить нижний план? – mscdex

+0

спасибо за ваш ответ - когда я посещаю страницу '/ '', я хочу, чтобы он отображал html, который я отправляю. Таким образом, я не знаю, полезно ли мне использовать что-то вроде 'app.get ('/ user', function (req, res) {res.send (200);});', так как это просто отображает что-то вместо html, который я хочу показать. Итак, как я могу проверить все, что находится на целевой странице? – maudulus

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