Use Jasmine para stub retornos de chamada JS com base em valores de argumento

Eu tenho um método JS no meu aplicativo node.js. que quero testar na unidade. Ele faz várias chamadas para um método de serviço, cada vez que passa esse serviço por um retorno de chamada; o retorno de chamada acumula os resultados.

Como posso usar o Jasmine para esboçar o método de serviço, para que cada vez que o stub seja chamado, ele chame o retorno de chamada com uma resposta determinada pelos argumento

Este é (como) o método que estou testando:

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...
}

Quero especificar que quando service_method for chamado com arg1 e arg2, o stub chamará o retorno de chamada f com uma resposta específica e, quando for chamado com other1 e other2, chamará o mesmo retorno de chamada com uma resposta específica diferent

Eu consideraria uma estrutura diferente também. (Tentei o Nodeunit, mas não consegui fazer o que queria.)

questionAnswers(3)

yourAnswerToTheQuestion