2014-02-24 64 views
0

嘗試運行一些茉莉花規格(用coffeescript編寫),通過jasmine-rails gem,我得到幾個茉莉花錯誤。我在我的代碼中使用了andCallFake()方法,並且包含該方法的任何規範都失敗了。我所有的其他測試都通過了。起初我懷疑它與jasmine.mock-ajax庫有關,但試圖在不使用該庫的方法上創建間諜會導致相同的錯誤。Jasmine-rails錯誤:沒有方法'andCallFake'

實例測試代碼(咖啡):

it 'should trigger an event on success', -> 
    validateSpy = jasmine.createSpy 'validate spy' 
    obj.on 'validated', validateSpy 
    $.ajax.isSpy = false 
    spyOn($, 'ajax').andCallFake(params) -> 
     params.success = true 

和錯誤消息:

TypeError: Object function() { 
    callTracker.track({ 
     object: this, 
     args: Array.prototype.slice.apply(arguments) 
    }); 
    return spyStrategy.exec.apply(this, arguments); 
    } has no method 'andCallFake' 
+0

原來茉莉花2.0刪除'andCallFake' –

回答

2

我可以在你的測試代碼發現一個錯誤:你需要andCallFake(params) 所以之間的空間andCallFake (params)

我剛剛在coffeescript.org上試過這個,你可以看到差異

+0

正確。 'f(x) - > ...'是'f(x)( - > ...)'但是f(x) - > ...是'f((x) - > ...) '。 –

1

它看起來像茉莉花2.0刪除andCallFake方法,我們哄擡它與捆綁更新。鎖定下來的寶石解決了這個問題。

+3

是的,茉莉花2.0使用.and.CallFake方法 – dgtc