У меня возникли проблемы с полным охватом в моем тестировании, где я пытаюсь использовать функцию обратного вызова внутри функции, которую я тестирую. Вот функция:Javascript unit tesing, проверка удара внутри функции возврата
CrowdControl.prototype.get = function() {
var options = this.optionsFor('GET');
return q.Promise(function(resolve, reject) {
function callback(error, response, body) {
if (error) {
reject(error);
} else {
resolve(body);
}
}
request(options, callback);
});
};
Так у меня есть функция охватывает от за исключением функции обратного вызова:
function callback(error, response, body) {
if (error) {
reject(error);
} else {
resolve(body);
}
}
Я не могу показаться, чтобы выяснить, как ударить это с тестами.
Наверху у меня есть запрос затушил как этот
var request = sinon.stub();
beforeEach(function() {
CrowdControl = rewire('crowdcontrol');
CrowdControl.__set__({
request: request
});
});
Так что я не знаю, как я могу сделать это поражало обратный вызов и проверить, что. Мог бы использовать некоторое понимание, поскольку это все еще нова для меня. Благодаря!
Так что я пытаюсь простой тест сначала что-то вроде этого -
it("should call callback function.", function() {
crowdControl.get();
//callback should fire?
expect(callback).to.have.been.called;
});
Я бы предпочел не организуйте функцию (поскольку я ее не создал, я просто пишу тесты для нее), если возможно – ajmajmajma
Ну, во многих случаях вам нужно сделать какой-то рефакторинг, если вам действительно нужно покрыть каждую строку – maque
Достаточно честно - спасибо! – ajmajmajma