使用 jasmine-ajax 模拟 XMLHttpRequest 给出 jasmine.ajax = undefined

管道城

我正在尝试使用 jasmine-ajax 在单元测试中模拟 XMLHttpRequest。我使用 Aurelia CLI 生成我的应用程序,并且我使用 Karma 作为单元测试运行程序。

对于单元测试,我尝试导入 jasmine-ajax:

import * as jasmine from 'jasmine-ajax';

describe('when calling the API', () => {
  beforeEach(() => {
    jasmine.Ajax.install();
  });

  afterEach(() => {
    jasmine.Ajax.uninstall();
  });

  it('then it should get an answer back', () => {
    var doneFn = jasmine.createSpy("success");

    var xhr= new XMLHttpRequest();
    xhr.onreadystatechange = function(args) {
      if(this.readyState == this.DONE) {
        doneFn(this.responseText);
      }
    };

    xhr.open("GET", "https://someaddress.net/api/plans");
    xhr.send();

    expect(jasmine.Ajax.requests.mostRecent().url).toBe("https://someaddress.net/api/plans");
    expect(doneFn).not.toHaveBeenCalled();

    jasmine.Ajax.requests.mostRecent().respondWith({
      "status":200,
      "contentType": 'text/plain',
      "responseText": 'awesome response'
    });

    expect(doneFn).toHaveBeenCalledWith('awesome response');

  });
});

使用 Karma 运行测试时,我得到:

类型错误:jasmine_ajax__WEBPACK_IMPORTED_MODULE_0__.jasmine 在 test/karma-bundle.js 第 3146 行 > eval(第 7 行)中未定义

我发现我已经安装了 jasmine-ajax 的类型定义

npm i @types/jasmine-ajax

然后我把jasmine-ajax的import语句去掉了,结果出现如下错误:

类型错误:jasmine.Ajax 在 test/karma-bundle.js 第 3134 行 > eval(第 3 行)中未定义

那么我做错了什么?

我正在使用 jasmine 3.3.9、jasmine-ajax 3.4.0、karma 4.0.1、typescript 2.9.2 和 webpack 4.4.25,

管道城

安装 karma-jasmine-ajax ( https://github.com/IDCubed/karma-jasmine-ajax ) 并将“jasmine-ajax”添加到 karma.conf.js 中的框架数组后,它开始工作。

module.exports = function(config) {
  config.set({
    frameworks: ['jasmine-ajax', 'jasmine']
  });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 jasmine 测试 ajax 调用

来自分类Dev

在Jasmine-ajax模拟响应中设置响应标头?

来自分类Dev

使用Jasmine测试从jQuery AJAX回调调用的函数

来自分类Dev

使用Jasmine 2.0测试初始ajax请求的结果

来自分类Dev

使用Jasmine测试时如何模拟MatChipInput

来自分类Dev

使用Jasmine模拟Angular 9服务

来自分类Dev

如何正确使用 Jasmine spies 模拟交易

来自分类Dev

使用 Jasmine 更改模拟服务成员的值

来自分类Dev

Jasmine 2.0如何处理Ajax请求

来自分类Dev

Ajax成功期间返回的Jasmine测试值

来自分类Dev

Jasmine,使用Promises对XMLHttpRequest进行单元测试

来自分类Dev

使用Jasmine在JS中测试AJAX调用时,.andReturn(...)和.respondWith(...)有什么区别?

来自分类Dev

Angularjs和Jasmine:使用进行Ajax调用的服务测试控制器

来自分类Dev

如何使用 jasmine-ajax 来验证是否调用了 send 方法?

来自分类Dev

使用angular / karma / jasmine模拟异步服务功能

来自分类Dev

使用$ provide在Jasmine测试中重用角度模拟

来自分类Dev

如何使用Angular和Jasmine模拟socket.io

来自分类Dev

使用模拟工厂在Jasmine中测试嵌套的Promise

来自分类Dev

使用requireJs在Jasmine中模拟匿名模块调用

来自分类Dev

使用Jasmine spyOn模拟Browserify模块中的功能

来自分类Dev

使用Jasmine模拟chrome.storage.local函数

来自分类Dev

使用Karma和Angular的Jasmine模拟链接方法

来自分类Dev

使用 jasmine 进行单元测试时模拟全局对象

来自分类Dev

无法使用 HttpTestController 在 Jasmine 和 Karma 中模拟 HttpClient

来自分类Dev

AngularJS和Jasmine:模拟服务

来自分类Dev

Angular 5(Karma / Jasmine 测试)- 使用模拟后端来模拟错误消息的错误响应

来自分类Dev

Jasmine:无法设置 isMultiple of undefined

来自分类Dev

使用XMLHttpRequest发出CORS Ajax请求

来自分类Dev

使用XMLHttpRequest标头的Nodejs Ajax调用

Related 相关文章

  1. 1

    使用 jasmine 测试 ajax 调用

  2. 2

    在Jasmine-ajax模拟响应中设置响应标头?

  3. 3

    使用Jasmine测试从jQuery AJAX回调调用的函数

  4. 4

    使用Jasmine 2.0测试初始ajax请求的结果

  5. 5

    使用Jasmine测试时如何模拟MatChipInput

  6. 6

    使用Jasmine模拟Angular 9服务

  7. 7

    如何正确使用 Jasmine spies 模拟交易

  8. 8

    使用 Jasmine 更改模拟服务成员的值

  9. 9

    Jasmine 2.0如何处理Ajax请求

  10. 10

    Ajax成功期间返回的Jasmine测试值

  11. 11

    Jasmine,使用Promises对XMLHttpRequest进行单元测试

  12. 12

    使用Jasmine在JS中测试AJAX调用时,.andReturn(...)和.respondWith(...)有什么区别?

  13. 13

    Angularjs和Jasmine:使用进行Ajax调用的服务测试控制器

  14. 14

    如何使用 jasmine-ajax 来验证是否调用了 send 方法?

  15. 15

    使用angular / karma / jasmine模拟异步服务功能

  16. 16

    使用$ provide在Jasmine测试中重用角度模拟

  17. 17

    如何使用Angular和Jasmine模拟socket.io

  18. 18

    使用模拟工厂在Jasmine中测试嵌套的Promise

  19. 19

    使用requireJs在Jasmine中模拟匿名模块调用

  20. 20

    使用Jasmine spyOn模拟Browserify模块中的功能

  21. 21

    使用Jasmine模拟chrome.storage.local函数

  22. 22

    使用Karma和Angular的Jasmine模拟链接方法

  23. 23

    使用 jasmine 进行单元测试时模拟全局对象

  24. 24

    无法使用 HttpTestController 在 Jasmine 和 Karma 中模拟 HttpClient

  25. 25

    AngularJS和Jasmine:模拟服务

  26. 26

    Angular 5(Karma / Jasmine 测试)- 使用模拟后端来模拟错误消息的错误响应

  27. 27

    Jasmine:无法设置 isMultiple of undefined

  28. 28

    使用XMLHttpRequest发出CORS Ajax请求

  29. 29

    使用XMLHttpRequest标头的Nodejs Ajax调用

热门标签

归档