博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于Karma 和 Jasmine 的Angular 测试(持续更新中)
阅读量:6941 次
发布时间:2019-06-27

本文共 1654 字,大约阅读时间需要 5 分钟。

hot3.png

最近对前端测试较感兴趣,尤其是Nodejs + Karma + Jasmine 对Angular 的测试。到处看看,做个记录吧,断断续续的更新.

<一> 用Jasmine 测试 Angular 的service

1. 先扔代码吧:

var app = angular.module('Application', []);
app.factory('myService', function(){    var service  = {};    service.one  = 1;    service.two  = 2;    return service;});

2. 怎么对这个angular 服务进行测试呢?

  • 使用angular.injector,调用Application Module,从而找到service。然后就是测试service 的function 了。

describe('myService test', function(){    describe('when I call myService.one', function(){        it('returns 1', function(){            var $injector = angular.injector([ 'Application' ]);            var myService = $injector.get( 'myService' );            expect(myService.one).toEqual(1);        })    })});

3. 结果如下:

223733_w2MJ_583145.png

因为我跑的有别的测试,so.

4.另一种方式来测试service

使用 'invoke' 将service传递给一个function

describe('myService test2', function(){    describe('when I call myService.one', function(){        it('returns 1', function(){            var myTestFunction = function(aService){                expect( aService.one ).toEqual(1);            }            myTestFunction.$inject = [ 'myService' ];            var myInjector = angular.injector([ 'Application' ]);            myInjector.invoke( myTestFunction );        })    })});

5.再加一种更简单的方式:

    beforeEach 是 jasmine 的语法,是在it() 之前跑的。

    需要注意的是 inject function 并非angularjs 的标准包,它是在ngMock 模块的,并且只和Jasmine 一起work。

describe('myService test3', function(){    describe('when I call myService.one', function(){        beforeEach(module('Application'));        it('returns 1', inject(function(myService){ // 参数名就是service 名            expect( myService.one ).toEqual(1);        }))    })});

转载于:https://my.oschina.net/pingjiangyetan/blog/473780

你可能感兴趣的文章
vagrant教程
查看>>
什么是SMART原则?
查看>>
js实现table内 某列的内容进行即时筛选
查看>>
iOS.Crash.OniOS8.WhenCall[popToRootViewController]
查看>>
【转】像素 Pixel (Picture Element)
查看>>
堆排序(java实现)
查看>>
ubuntu server 安装vnc
查看>>
win7关闭关机时的自动终止的功能
查看>>
调试K3网页版需要注意的问题
查看>>
前端开发中的一些用户体验细节
查看>>
第二章:身份验证
查看>>
开发基础(练习题)
查看>>
常用的HTTP响应头
查看>>
PYTHON2.day06
查看>>
http 响应码
查看>>
查找并绘制轮廓[OpenCV 笔记XX]
查看>>
Git系列之一 --- git remote
查看>>
PHP 实现多服务器共享 SESSION 数据
查看>>
Linux系统信息查看命令大全
查看>>
Coursera机器学习编程作业Python实现(Andrew Ng)—— 1.2 Linear regression with multiple variables...
查看>>