Используйте Jasmine, чтобы заглушить обратные вызовы JS на основе значений аргументов

У меня в приложении node.js есть метод JS, который я хочу протестировать. Он делает несколько вызовов метода сервиса, каждый раз передавая этот сервис обратный вызов; обратный вызов накапливает результаты.

Как я могу использовать Jasmine, чтобы заглушить метод службы, чтобы при каждом вызове заглушки вызывался обратный вызов с ответом, определяемым аргументами?

Это (как) метод, который я тестирую:

function methodUnderTest() {

    var result = [];
    var f = function(response) {result.push(response)};

    service_method(arg1, arg2, f);

    service_method(other1, other2, f);

    // Do something with the results...
}

Я хочу указать, что когда service_method вызывается с arg1 и arg2, заглушка будет вызывать обратный вызов f с конкретным ответом, а когда он вызывается с other1 и other2, она будет вызывать тот же самый обратный вызов с другим конкретным ответом.

Я бы тоже рассмотрел другую структуру. (Я попробовал Nodeunit, но не смог сделать то, что хотел.)

Ответы на вопрос(3)

Ваш ответ на вопрос