2017-02-21 47 views
1

Я закончил создание CRUD-приложения с 20 прохождением тестов. Я использую EJS для визуализации представлений, и теперь у меня проблема с моими тестами.Тестирование рендеринга с EJS в Mocha

В качестве простого примера предположим, что я проверял, чтобы видеть, что, когда запрос GET отправляется '/', что JSON будет послан как так res.json({message:'hello'}), чтобы я мог настроить свои тесты в Мокко так что res.body.message приравнивается к «привет».

Однако, если бы я хотел отобразить страницу index.ejs вместо отправки JSON. Таким образом, это будет выглядеть как res.render('index',{message:'hello'}). Как я могу проверить res.render()? или более конкретно, как я могу проверить объект, переданный на res.render()?

РЕДАКТИРОВАТЬ: Решение этой проблемы (и проблемы такого рода) может быть решена с помощью парадигмы тестирования под названием Функциональное тестирование. Погугли это.

ответ

1

Для проверки http получить по существу можно понять как необходимость проверки маршрута. Итак, ваш тест должен включать в себя условие ожидания (относительно того, что ожидать при поиске маршрута) и ответ на проверку, в данном случае объект JSON.

Используя Мокко, вы можете описать тест как

it('should respond with JSON data', function (done) { 
    request(server) 
    .get('/about/jv') 
    .expect(200) 
    .end(function (err, response) { 
     assert.equal(response.header['content-type'], 'application/json; charset=utf-8'); 
     assert.deepEqual(response.body, { 
     "data":{ 
     "username":"hello"} 
     }); 
     done(); 
    }); 
}); 

Поскольку вам нужен сервер для запуска запроса HTTP против, «Supertest», пакет узел используется для запуска «» server.js к инициализировать сервер и протестировать запрос (сервер).

Проверить this - В репо GitHub имеется полный шаблон для тестирования этого требования. Он также тестирует возвращаемый объект JSON.

+1

Хотя эта ссылка может ответить на вопрос, лучше включить основные части ответа здесь и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/16596394) –

+0

Спасибо, Патрик! Часть EDIT вопроса как-то уменьшила мой энтузиазм, чтобы полностью ответить, и я не был уверен, действительно ли вопроситель действительно ищет ответ, но так как другие могут приземлиться на вопрос с аналогичным требованием, я предоставил ссылку. – user2347763

+0

@PatrickHund Если мое Редактирование удовлетворяет вашему обзору, пожалуйста, удалите -1 downvote – user2347763