防止AJAX调用茉莉和兴农使用骨干(Preventing AJAX call with Jasmin

2019-09-19 18:17发布

我刚刚开始测试我与兴农和茉莉花主干应用。 我有一个观点,即看起来像(CoffeeScript的):

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

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

      @collection.fetch()

    this

我想与未提取收集来测试这一点,但我不知道如何捏造我的代码中调用Ajax(显然可以很容易地在规范中进行)。 我意识到,我可以只通过在预取的集合,但我很好奇 - 这可能与兴农覆盖取函数返回一个假的反应?

感谢您的任何帮助。

Answer 1:

引擎盖下,骨干网使用jQuery的$.ajax法,这样你就可以存根出。 我们用它来赶上我们的茉莉花规格意外电话:

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

然后你就可以在存根,如果你想伪造一个AJAX调用和它的响应:

spyOn($,'ajax').andCallFake (options) =>
  if options.url is "/correct"
    options.success {"data":"yay"}


文章来源: Preventing AJAX call with Jasmine and Sinon using Backbone