不知道如何使用Jasmine测试这个asyn功能

时间:2015-11-23 11:04:04

标签: javascript ajax testing jasmine bdd

asynFn(url, callback)

此函数接受一个url并触发一些xhr请求,然后使用callback(result)发送回处理结果。我该如何测试?

(我已直接在Chrome中运行asynFn并且运行正常。)

我尝试使用jasmine-ajax来存根请求,但expect无效。

describe('a test', function() {
  var callback

  beforeAll(function() {
    jasmine.Ajax.install()

    jasmine.Ajax.stubRequest('fake/path1').andReturn({
      status: 200,
      contentType: 'text/plain',
      responseText: 'yay'
    })

    jasmine.Ajax.stubRequest('fake/path2').andReturn({
      status: 200,
      contentType: 'text/plain',
      responseText: 'yay2'
    })

    // ...
  })

  afterAll(function() {
    jasmine.Ajax.uninstall()
  })

  beforeEach(function() {
    callback = jasmine.createSpy('sendResponse')
  })

  it('a spec', function() {

    asynFn('input string', callback)

    expect(jasmine.Ajax.requests.mostRecent().url).toBe('fake/path2')
    expect(callback).toHaveBeenCalled() // faild
  })
})

我在这里缺少什么?

0 个答案:

没有答案