Мне очень нравится Стамбул, и я экспериментирую с другими библиотеками покрытия Node.js, но у меня есть проблема. Почти все мои модульные тесты представляют собой HTTP-вызовы моего API, например:
it('should update the customer', function (done) {
superagent.put('http://myapp:3000/api/customer')
.send(updatedData)
.end(function (res) {
var customer = res.body;
expect(res.statusCode).to.equal(200);
expect(customer.name).to.equal(updatedData.name);
done();
});
});
В отличие от фактического запроса файла customers.js и прямого вызова updateCustomer
. Для меня тестирование конечной точки имеет гораздо больший смысл, поскольку оно проверяет не только updateCustomer
, но также маршруты, контроллеры и все остальное, что связано с этим.
Это работает нормально, но проблема в том, что я не вижу способа, чтобы какой-либо инструмент покрытия кода распознал эти тесты. Есть ли способ у Стамбула или чего-то еще, чтобы распознать эти тесты Mocha? Если нет, то в чем заключается соглашение? Как вы тестируете конечные точки и по-прежнему используете инструменты покрытия кода?