gpt4 book ai didi

unit-testing - 使用 Backbone 防止 Jasmine 和 Sinon 的 AJAX 调用

转载 作者:行者123 更新时间:2023-12-04 18:16:37 24 4
gpt4 key购买 nike

我刚刚开始使用 Sinon 和 Jasmine 测试我的 Backbone 应用程序。我有一个看起来像 (coffeescript) 的 View :

  initialize: ->
@collection.on 'reset', @render, this

render: ->
if @collection.fetched
# do stuff
else
@$el.append "<h3>Loading...</h3>"

@collection.fetch()

this

我想用一个未获取的集合来测试它,但我不确定如何在我的代码中伪造一个 ajax 调用(显然可以在规范中轻松完成)。我意识到我可以传入一个预取的集合,但我很好奇——Sinon 是否有可能覆盖 fetch 函数以返回虚假响应?

感谢您的任何帮助。

最佳答案

在底层,Backbone 使用 jQuery 的 $.ajax方法,所以你可以把它 stub 。我们使用它来捕获 Jasmine 规范中的意外调用:

$.ajax = -> throw "ajaxShouldBeStubbedOutError: #{JSON.stringify arguments}"

然后,如果您想伪造 AJAX 调用及其响应,则可以对其进行 stub :
spyOn($,'ajax').andCallFake (options) =>
if options.url is "/correct"
options.success {"data":"yay"}

关于unit-testing - 使用 Backbone 防止 Jasmine 和 Sinon 的 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11550926/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com