We write unit tests to explore and confirm the behavior of parts of our application.
我们编写单元测试来探索并巩固应用程序中的行为部分。
They guard against breaking existing code (“regressions”) when we make changes.
当我们做出修改时,它们会守护已有代码,防止其被破坏。
They clarify what the code does both when used as intended and when faced with deviant conditions.
当我们正确使用代码和面对异常情况时,它们会让代码的用途更加明晰。
They reveal mistakes in design and implementation. Tests force us to look at our code from many angles. When a part of our application seems hard to test, we may have discovered a design flaw, something we can cure now rather than later when it becomes expensive to fix.
它们会揭露我们设计和实现中的错误。测试会强迫我们从多种角度看代码。如果应用程序的一个部分看起来很难测试,这可能就意味着存在设计缺陷。 我们可以立即修复它,而不用等到它变得不可收拾的那一天。
These testing chapters were written before the Angular 2 Beta release and are scheduled for significant updates. Much of the material remains accurate and relevant but references to specific features of Angular 2 and the Angular 2 testing library may not be correct. Please bear with us.
这些关于测试的章节写于Angular 2 Beta版发布之前,并且已经准备做重大更新。 这些素材中很多都是准确而有意义的,但是所引用的Angular 2特有特性和测试库可能是不正确的。各位见谅。
Here is what we’ll learn in the unit testing chapters.
下面是我们将在单元测试一章中学到的:
Jasmine Testing 101
Jasmine测试简介
setup to run Jasmine tests in the browser
在浏览器中设置并准备运行Jasmine测试
basic Jasmine testing skills
基本的Jasmine测试技能
write simple Jasmine tests in TypeScript
用TypeScript写一个简单的Jasmine测试
debug a test in the browser
在浏览器中调试一个测试
The Application Under Test
待测试的应用程序
Test a class
测试一个类
test a simple application class outside of Angular
在Angular测试环境外测试简单的应用类
where to put the test file
把测试文件放在哪里
load a test file with systemJS
用SystemJS加载测试文件
Test a Pipe
测试一个管道
test a simple Angular Pipe class
测试一个简单的Angular管道类
add the Angular 2 library to the test harness
把Angualr 2库添加到测试挽具(harness)中
load multiple test files using system.js
使用SystemJS加载多个测试文件
Test an Asynchronous Service
测试异步服务
test an asynchronous service class outside of Angular
在Angular测试环境外测试异步服务
write a test plan in code
用代码写一个测试计划
fake a dependency
伪造一个依赖
master the
catch(fail).then(done)
pattern掌握
catch(fail).then(done)
模式move setup to
beforeEach
把设置代码移入
beforeEach
test when a dependency fails
测试依赖失败时的情况
control async test timeout
控制异步测试的超时时间
The Angular Test Environment
Angular测试环境
the Angular test environment and why we need help
Angular测试环境以及我们为什么需要它的帮助
add the Angular Test libraries to the test harness
把Angular测试库加入测试挽具中
test the same async service using Angular Dependency Injection
用Angular依赖注入测试同一个异步服务
reduce friction with test helpers
减少和测试助手的摩擦
introducing spies
引入侦探类
Test a Component
测试组件
test the component outside of Angular
在Angular测试环境外测试组件
mock the dependent asynchronous service
模拟所依赖的异步服务
simulate interaction with the view (no DOM)
仿真和视图(没有DOM)的互动
use a spy-promise to control asynchronous test flow
使用侦探型承诺(spy-promise)来控制异步测试工作流
Test a Component in the DOM
在DOM中测试组件
test the component inside the Angular test environment
在Angular测试环境中测试组件
use the
TestComponentBuilder
使用
TestComponentBuilder
more test helpers
更多测试助手
interact with the DOM
与DOM互动
bind to a mock dependent asynchronous service
绑定到一个模拟的被依赖异步服务
Run the tests with karma
用Karma运行这些测试
It’s a big agenda. Fortunately, you can learn a little bit at a time and put each lesson to use.
这是一个很大的日程表。幸运的是,我们可以一次只学一小点,然后把它们投入实战。