怫然的英文译语怎么说-六级听力在线练习
2023年4月6日发(作者:新东方英语口语培训)
Jasmine使⽤教程
前⾔
随着前端开发的复杂度与⽇俱增,前端⼯程师写出来的JS代码变得越来越庞⼤,从⽽使项⽬变的臃肿,维护的成本及难度不断加⼤,协作迭代开
发已经很难保证代码的功能性不被破坏。所以在这种情况下,考虑引⼊⼀款前端的单元测试框架,来为代码保驾护航是⼀件很重要的事情。
什么是单元测试
或许⼤家在看⼀些产品书籍的时候,当介绍⼀个项⽬时,会不由⾃主说到测试。⽐如,单元测试,函数测试,或是TDD,BDD等测试模式。
那究竟什么是单元测试呢?
单元测试,单元,测试。
什么是单元(unit)?单元就是相对独⽴的功能模块。⼀个完整的、模块化的程序,都是由许多单元构成,单元完成⾃⼰的任务、然后与其它单元
进⾏交互,最终协同完成整个程序功能。
什么是测试?测论语十二章翻译最简短 试就是测试,判断测试对象对于某个特定的输⼊有没有预期的输出。
所以什么是单元测试?就是对构成程序的每个单元进⾏测试(⼤雾)。⼯程上的⼀个共识是,如果程序的每个模块都是正确的、模块与模块的连接
是正确的、那么程序基本上就会是正确的。
所以单元测试就是这么⼀个概念,⼀种努⼒保证构成程序的每个模块的正确性,从⽽保证整个程序的正确性的⽅法论。
说⽩了,单元测试的⽬的就是来保证你写的JS模块能够完成任务并且没有出现bug,如果你的代码在单元测试的过程中,需要引⼊多个模块时,
这说明你测试的主体模块的耦合度相对⽐较⾼,也就意味着你要重构代码了。
单元测试的模式
单元测试的模式基本分为:TDD和BDD。
TDD全称是Test-drivendevelopment,即测试驱动开发。
TDD的原理是在开发功能代码之前,先编写单元测试⽤例代码,测试代码确定需要编写什么产品代码。
TDD的基本思路就是通过测试来推动整个开发的进⾏,但测试驱动开发并不只是单纯的测试⼯作,⽽是把需求分析,设计,质量控制量化的过
程。
TDD⾸先考虑使⽤需求(对象、功能、过程、接⼝等),主要是编写测试⽤例框架对功能的过程和接⼝进⾏设计,⽽测试框架可以持续进⾏验
证。
通常的TDD测试步骤是:
先写测试
再写代码
测试
重构
通过
BDD全称是:Behavior-Drivendevelopment,即⾏为驱动开发。
BDD的应⽤场景就是给⼀些QA⼯程师使⽤的,他⽤他的语⾔和你进⾏交流,即他会进⾏⼀些测试⽤例,然后如果通过则说明,他已经信赖你
了。
⽽BDD与TDD的主要区别是,使得⾮程序⼈员也能参与到测试⽤例的编写中来,⼤⼤降低了客户、⽤户、项⽬管理者与开发者之间来回翻译的
成本。所以BDD更加注重业务需求⽽不是技术,⽽⽬前在⼤部分公司⾥⾯,通常使⽤的是BDD测试。⽽我们本⽂的重点就是讲⼀款BDD模式的测
试框架,那就是Jasmine。
什么是Jasmine
⾸先,Jasmine是⼀款JavaScript测试框架,它不依赖于其他任何JavaScript组件。它有⼲净清晰的语法,让您可以很简单的写出测试代码。
其次,Jasmine官⽹介绍⾥⾯开篇第⼀句话是“Jasmineisabehavior-drivendevelopmentframeworkfortestingJavaScriptcode.”,
主要的意思就是说它是⼀款BDD模式的测试框架,也就是⾏为驱动开发,同样它是⼀种敏捷软件开发的技术。
BDD更像是⼀种团队的约定,javascript单元测试,也许对于你本⼈(开发该脚本的前端)意义不是特别突出,但对于
整个团队,整个项⽬来说就是⼀种财富
如何使⽤Jasmine
1、在项⽬根⽬录中,初始化
npminit
2、⽬录结构:
-src
-
-test
-
3、安装karma+jasmine相关包
npminstall-gkarma-cli
npminstallkarmakarma-jasminekarma-chrome-launcherjasmine-core--save-dev
4、开启Karma
karmastart
image
⼿动打开Chrome,输⼊localhost:9876
image
5、初始化karma
karmainit
image
说明:
1.测试框架:我们当然选jasmine
2.是否添加插件
3.选择浏览器:我们选Chrome
4.测试⽂件路径设置,⽂件可以使⽤通配符匹配,⽐如*.js匹配指定⽬录下所有的js⽂件(实际操作中发现该路径是⽂件的相对
路径,详见下⾯我给出的实际测试配置及说明)
5.在测试⽂件路径下,需要排除的⽂件
6.是否允许Karma监测⽂件,yes表⽰当测试路径下的⽂件变化时,Karma会⾃动测试
以下是的完整内容:
//Karmaconfiguration
//GeneratedonWedNov16201614:26:14GMT+0800(中国标准时间)
s=function(config){
({
//basepaththatwillbeusedtoresolveallpatterns(,exclude)
basePath:\'\',
//frameworkstouse
//availableframeworks:/browse/keyword/karma-adapter
frameworks:[\'jasmine\'],
//listoffiles/patternstoloadinthebrowser
files:[
\'src/**/*.js\',
\'test/**/*.js\'
],
//listoffilestoexclude
exclude:[],
//preprocessmatchingfilesbeforeservingthemtothebrowser
//availablepreprocessors:/browse/keyword/karma-preprocessor
preprocessors:{
},
//testresultsreportertouse
//possiblevalues:\'dots\',\'progress\'
//availablereporters:/browse/keyword/karma-reporter
reporters:[\'progress\'],
//webserverport
p静夜思古诗意思全解 ort:9876,
//enable/disablecolorsintheoutput(reportersandlogs)
colors:true,
//leveloflogging
//possiblevalues:_DISABLE||_ERROR||_WARN||_INFO||_DEBUG
logLevel:_INFO,
//enable/disablewatchingfileandexecutingtestswheneveranyfilechanges
autoWatch:true,
//startthesebrowsers
//availablebrowserlaunchers:/browse/keyword/karma-launcher
browsers:[\'Chrome\'],
//ContinuousIntegrationmode
//iftrue,Karmacapturesbrowsers,runsthetestsandexits
singleRun:false,
//Concurrencylevel
//howmanybrowsershouldbestartedsimultaneous
concurrency:Infinity
})
}
内容:
functionreverse(name){
if(name===\'AAA\')return\'BBB\';
(\"\").reverse().join(\"\");
}
内容:
describe(\"全部变量,定义测试\",阅微草堂笔记译文 function(){
beforeEach(function(){
});
afterEach(function(){
});
it(\"reverseword\",function(){
expect(\"DCBA\").toBe(reverse(\"ABCD\"));
});
});
启动karma:
karmastart
因为我们在配置⾥设置了在Chrome中测试,因此karma会⾃动启动Chrome实例,并运⾏测试⽤例:
image
如果我们点击图中的debug按钮,进⼊并按F12打开开发者⼯具,选择Console窗⼝,我们将能看到jasmine的执⾏⽇志
image
这个时候,说明我们已经部署成功,并且可以进⾏测试⽤例编写。
代码覆盖率
如果你还想查看测试的代码覆盖率,我们可以安装karma-coverage插件,安装命令为:
npminstallkarma-coverage--save-dev
修改,增加覆盖率的配置:
preprocessors:{
\'src/**/*.js\':[\'coverage\']
}
reporters:[\'progress\',\'coverage\']
//add
coverageReporter:{
type:\'html\',
dir:\'coverage/\'
}
变动如下:
在reporters中增加coverage
preprocessors中指定js⽂件
添加coverageReporter节点,将覆盖率报告类型type设置为html,输⼊⽬录dir指定到你希望的⽬录中
启动Karma
karmastart
(执⾏命令后,在配置⽂件coverageReporter节点中指定的dir中,我们将找到⽣成的覆盖率报告,karma-coverage还⽣成了⼀层⼦晏子简介 ⽂件
夹,对应于执⾏测试的浏览器+版本号+操作系统版本)
image
使⽤jasmine-html
HTML