2015-12-31 7 views
1

У меня есть жасмин шпион установлен на метод, который называется какЖасмин тест контекст шпиона

if(typeof method === 'function'){ 
    var context = {a:'b'}; 
    method.call(context); 
} 

так, что когда метод вызывается, this ключевое слово в нем будет контекст. Как проверить контекст шпиона с Жасмином?

ответ

1

Вызывающий контекст находится в свойстве object каждого объекта вызова.

Так дало

var method = jasmine.createSpy(); 
var context = {a:'b'}; 
method.call(context); 

Вы можете проверить вызывающий контекст вашего осматривали метода, как это:

mostRecentCall = method.calls.mostRecent(); 
expect(mostRecentCall.object).toEqual(context); 

here Проверить больше примеров в документации жасмин.

0

Мне нравится ответ Koen, но я решил сделать это более элегантным способом с помощью пользовательских сокетов. Вот Lib https://www.npmjs.com/package/jasmine-spy-matchers

Использование этой библиотеки вы можете сделать следующее:

expect(method).toHaveBeenCalledWithContext(context);