Jasmine spyOn с CoffeeScript on Rails 3.1 с test_track

Я использую Jasmine с CoffeeScript (в Rails 3.1) и test_track. Все остальное в порядке, но я не могу заставить spyOn работать с вызовами функций:

describe "spyOn", ->
  it "should spy", ->
    foo = 
      bar: ->

    spyOn(foo, 'bar')
    foo.bar()
    expect(foo.bar).toHaveBeenCalled()

ожидание терпит неудачу. Что случилось?

Обновление: тот же самый код работает на tryjasmine. Это может быть ошибка версии жасмина с test_track.


person Dan Mazzini    schedule 30.10.2011    source источник
comment
У вас есть проблема с пробелами и табуляциями? Вызов spyOn втягивается в функцию bar из-за неправильных пробелов?   -  person Brian Genisio    schedule 30.10.2011
comment
спасибо за предложение, но если я скопирую и вставлю тот же код, чтобы попробовать жасмин, он работает, значит, это должно быть что-то еще   -  person Dan Mazzini    schedule 30.10.2011
comment
Если вы создаете пустые функции, рекомендуется записывать их как (->). В некоторых случаях отказ от паренсы вызовет проблемы.   -  person Aaron Dufour    schedule 31.10.2011
comment
Возможно, стоит поместить console.log в функцию панели, чтобы посмотреть, вызывается ли она.   -  person Steve Ross    schedule 31.10.2011
comment
@aaron Я пробовал, но результат тот же   -  person Dan Mazzini    schedule 31.10.2011
comment
@SteveRoss, насколько я знаю, с этим простым кодом исходная панель не должна выполняться ...   -  person Dan Mazzini    schedule 31.10.2011
comment
@ danmaz74 Я знаю, что это не решит твою проблему; Я просто указывал, как можно сделать ваш код чище.   -  person Aaron Dufour    schedule 31.10.2011


Ответы (2)


Для тех, у кого такая же проблема, вот ответ:

https://github.com/quickleft/test_track/issues/7#issuecomment-2570580

person Dan Mazzini    schedule 05.11.2011

Взгляните на скомпилированный JavaScript и отладьте оттуда. Возможно, эти возвраты вызывают проблемы?

describe("spyOn", function() {
  return it("should spy", function() {
    var foo;
    foo = {
      bar: function() {}
    };
    spyOn(foo, 'bar');
    foo.bar();
    return expect(foo.bar).toHaveBeenCalled();
  });
});
person liammclennan    schedule 31.10.2011
comment
Спасибо за предложение, но проблема не в этом. Я только что нашел, что это такое, сейчас я отправлю это, чтобы другие могли сослаться на - person Dan Mazzini; 05.11.2011