【问题标题】:Jasmine .andCallFake not triggering for function call with spineJsJasmine .andCallFake 没有触发与 spinJs 的函数调用
【发布时间】:2013-05-10 04:45:52
【问题描述】:

我正在使用 jasmine 测试我的前端,并设置了一个间谍来监视在控制器中调用的编辑函数。回调接收一条消息,然后调出编辑视图或引发错误。

spyOn(edit, "edit").andCallFake (callback) ->
    console.log(callback)
    callback()

我还有一个间谍设置来监视模型中的一个函数,该函数在编辑控制器中获取项目的更新版本。

spyOn(ag, "fetchLatestVersion").andCallFake (callback) ->
    console.log(callback)
    callback()

此函数返回一条消息,该消息被发送到编辑回调,然后显示视图或引发错误。

我的编辑函数运行正常,直到它到达 fetchLatestVersion() 函数,然后它似乎不想运行回调,甚至似乎不输出回调是什么。对茉莉花的 .andCallFake() 的任何帮助将不胜感激。

提前致谢!

编辑:

我刚刚删除了编辑间谍(最终是不必要的),我的错误已经改变了。我从 .fetchLatestVersion() 接收到正确的回调函数,但我最终收到一条错误消息:

Error: Expected a spy, but got Function.

如果您需要更多信息,请告诉我。再次感谢!

【问题讨论】:

    标签: testing coffeescript jasmine spine.js


    【解决方案1】:

    这原来是 Spine(前端框架)以及它如何查找对象的问题。它进行克隆而不是返回实际对象。通过将记录更改为 irecords,我能够正确通过测试!

    【讨论】:

    • in spin Model.find() 返回一个重复的实例。这通常是一件非常好的事情,但是当你想在模型实例上放置一个间谍并且你的一个控制器方法又找到另一个时,这可能会让人感到困惑。在这种情况下,间谍不会转移。所以在脊椎 1.1.0 中,你必须直接使用 Model.irecords[theidofthething] 获取对象并将间谍附加到那里
    猜你喜欢
    • 2014-03-26
    • 2014-04-24
    • 1970-01-01
    • 2021-08-05
    • 2014-04-24
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多