如何使用jasmine测试模拟jquery ajax调用,用jquery.ready函数编写

时间:2014-12-10 05:28:46

标签: jquery testing jasmine gui-testing jasmine-jquery

我有一个场景,我在jquery.ready函数中调用jquery ajax。所以只要这个js被加载到页面中,ajax调用就会被提交。我正在为这个js写茉莉花测试用例。 问题是,当我在我的specrunner.html中包含这个js来编写jasmine测试时,会调用jquery.ajax,因为它在jquery.ready中。我想要模拟这个ajax调用。我已经尝试过使用jasmine ajax,但没有帮助。 请帮忙。

1 个答案:

答案 0 :(得分:1)

你想模拟AJAX调用或响应吗?如果它是后者,过去我常常用Sinon's fake server来模仿它。现在(Jasmine 2.X)拥有它自己的fake XHR facility。一般来说,你会在beforeEach中拥有如下内容:

beforeEach(function() {
  jasmine.Ajax.install();
});

然后,在您发送请求后,您将运行:

request = jasmine.Ajax.requests.mostRecent();

request.respondWith = {
      status: 200,
      responseText: '{"response":{"groups":["A","B","C"]]}}'
}