Page 242 - AngularJS权威教程
P. 242
222 第 19 章 测试
19.4.2 端到端测试
另一方面,也可以对我们的应用作黑盒测试(也就是端到端测试)。在端到端(E2E)测试
中,我们测试应用的视角是:作为最终用户,对系统的底层实现一无所知。这种方法非常适合测
试大型应用的功能。
端到端测试适合测试页面上的用户交互,无需手动刷新页面。
关于这类测试的介绍并不新鲜,还有些了不起的工具,能使我们建立自动化的浏览器测试。
我们可以使用工具如PhantomJS或CasperJS来进行无头浏览器测试(即不必打开浏览器),或Karma
等工具,会真正将打开一个浏览器并在一个iframe中执行所有的测试。
何时选择端到端测试
当我们编写用例功能的测试时,顺着用户的思路去写测试总是不错的。端到端测试意义重大,
因为它映射了用户在使用我们应用时的真实体验。
例如,当建立一个用户登录流程时,我们要测试用户登录进来并且重定向到了他的主页。我
们并不关心用户是怎样登录进来的,我们只关心他们登进来,然后跳转到恰当的位置。
想象一下你正在构建一个火箭船。端到端测试不在乎发动机或起落架,它只关心火
箭起飞,把你的宇航员送上太空。
Karma测试运行器同时支持单元测试和端到端测试。
注意,编写单元测试而不是端到端测试将使我们的测试速度飞快。把测试设置
成同步执行,使用模拟库,也将大大加速我们的测试。
19.5 开始
要运行我们的测试,需要安装Karma测试运行器。读到这的时候,你应该已经装了NodeJS 和
①
npm了吧,要是还没有,快去装吧。安装好之后,我们就可以用npm命令来安装Karma了:
$ npm install -g karma
我们将把依赖关系保存在package.json文件中。如果要在npm已安装的情况下设
置package.json,直接运行npm init,跟着向导走一遍就行了。
要开始测试我们的应用,需要为应用代码和测试代码设置一个合理的结构。
推荐用下面的格式存储应用的文件:
app/
index.html
js/
app.js
controllers.js
——————————
① http://nodejs.org