karma-jasmine 踩坑记录

如有排版错误,请查阅https://www.zybuluo.com/bornkiller/note/24702

官方文档:

framework未定义

  • 昨日遇到问题,在local安装后,对应框架未能引入,需要全局安装后方可排除。可能是个人之前理解有误。

karma-jasmine-ajax说明

  • 安装karma-jasmine-ajax插件,如下为其package.json文件,npm install之前,去掉tags,即可安装最新版本,否则文档高度不匹配,如此还不如手工引入最新版本。
"dependencies": {
    "jasmine-ajax":      
        "git://github.com/pivotal/jasmine-ajax#477f044b4afa9b77ca834275109cbe08b362f05e"
  }

如果觉得麻烦,可以使用如下方式,亲测可用:

npm install karma-jasmine-ajax-eisoo --save-dev

karma-jasmine说明

  • npm仓库里karma-jasminejasmine的版本低于2.0版本,而2.0版本配合karma使用本人暂时未能顾及,故延后处理。
  • 使用karma-jasmine单元测试中,spy.callsundefined.
  • 使用karma-jasmine单元测试中,spyOn链式调用函数与最新文档有明显差异。
    官方2.0文档示范如下:
 spyOn(foo, 'setBar').and.callThrough();
 spyOn(foo, "getBar").and.returnValue(1234);
 spyOn(foo, "getBar").and.callFake(function() {
     return 1234;
 });
 spyOn(foo, "getBar").and.throwError("unconsidered error");

但当前karma-jasmine环境下,可如下调用。

spyOn(love, 'getBar').andCallThrough();
spyOn(love, 'getBar').andReturn(1234);
spyOn(love, 'getBar').andCallFake(function () {
    return 1234;
});
spyOn(love,'getBar').andThrow('unconsidered error');

总结来说,就是使用前,确定使用的是哪一个版本,再进行操作。

  • 如果需要强制新版本jasmine依赖,按照如下配置:
{
  "devDependencies": {
    "karma": "~0.12.0",
    "karma-jasmine": "~0.2.0"
  }
}

Webstorm-live-template

  • 如果使用webstorm,可以参考https://github.com/bornkiller/webstorm-livetpls-jasmine.git,将其中Jasmine.xml文件放入对应目录下即可,支持当前的karma-jasmine调用方式。新版调用方式会开新分支实现。
  • 模板位置
    SystemLocation
    windowsC:\Users\Administrator\.WebStorm8\config\templates
    linux~.[product name][version number]\config\templates
    mac~/Library/Preferences/[product name][version number]/templates

技术交流

如果内容与实际有出入,请联系。

  • QQ:491229492
  • Email:huang.jian@eisoo.com
    原文作者:怀疑真爱的流浪者jason
    原文地址: https://segmentfault.com/a/1190000000623274
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞