2016-02-06 02:27:06 -05:00
:marked
We write **unit tests** to explore and confirm the **behavior** of parts of our application.
2016-04-19 11:07:22 -04:00
我们编写**单元测试**来探索和确认我们应用程序的**行为**部分。
2016-02-06 02:27:06 -05:00
1. They **guard** against breaking existing code (“regressions”) when we make changes.
2016-04-23 10:16:28 -04:00
1. 当我们改变代码是,它们**守护**已有代码,以防被破坏。
2016-04-19 11:07:22 -04:00
2016-02-06 02:27:06 -05:00
1. They **clarify** what the code does both when used as intended and when faced with deviant conditions.
2016-04-23 10:16:28 -04:00
1. 在我们正确使用代码和面对异常情况时,它们**澄清**代码做什么。
2016-04-19 11:07:22 -04:00
2016-02-06 02:27:06 -05:00
1. 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.
2016-04-23 10:16:28 -04:00
1. 它们**揭示**我们设计和实现的错误。测试强迫我们从多个角度看代码。当应用程序的一个部分看起来很难测试,我们可能会发现设计缺陷,这是我们可以立刻修复的,而不是等到它变得很难修复的时候。
2016-02-06 02:27:06 -05:00
a(id="top")
:marked
2016-04-19 11:07:22 -04:00
# Table of Contents
# 目录
2016-02-06 02:27:06 -05:00
1. [Jasmine Testing 101](#jasmine-101)
2016-04-19 11:07:22 -04:00
1. [Jasmine测试101](#jasmine-101)
2016-04-20 08:07:39 -04:00
- setup to run Jasmine tests in the browser
2016-04-19 11:07:22 -04:00
- 设置浏览器来运行Jasmine测试
2016-04-20 08:07:39 -04:00
- basic Jasmine testing skills
2016-04-19 11:07:22 -04:00
- 基础Jasmine测试技能
2016-04-20 08:07:39 -04:00
- write simple Jasmine tests in TypeScript
2016-04-19 11:07:22 -04:00
- 实用TypeScript来编写简单的Jasmine测试
2016-04-20 08:07:39 -04:00
- debug a test in the browser
2016-04-19 11:07:22 -04:00
- 在浏览器里调试测试
2016-02-06 02:27:06 -05:00
1. [The Application Under Test](#aut)
2016-04-19 11:07:22 -04:00
1. [被测试的应用程序](#aut)
2016-03-24 15:30:26 -04:00
1. [First app test](#first-app-tests)
2016-04-19 11:07:22 -04:00
1. [第一个应用程序测试](#first-app-tests)
2016-04-20 08:07:39 -04:00
- test a simple application interface outside of Angular
2016-04-19 11:07:22 -04:00
- 在Angular之外, 测试一个简单的应用程序接口
2016-04-20 08:07:39 -04:00
- where to put the test file
2016-04-19 11:07:22 -04:00
- 测试文件存放到哪儿
2016-04-20 08:07:39 -04:00
- load a test file with systemJS
2016-04-19 11:07:22 -04:00
- 使用systemJS调用一个测试文件
2016-03-24 15:30:26 -04:00
1. [Pipe driven development](#pipe-testing)
2016-04-19 11:07:22 -04:00
1. [测试驱动开发一个管道](#pipe-testing)
2016-04-20 08:07:39 -04:00
- create a test before creating a class
2016-04-19 11:07:22 -04:00
- 在新建类之前,新建一个测试
2016-04-20 08:07:39 -04:00
- load multiple test files in our test harness, using system.js
2016-04-19 11:07:22 -04:00
- 使用system.js, 加载多个测试文件到我们的测试套装里
2016-04-20 08:07:39 -04:00
- add the Angular 2 library to our test harness
2016-04-19 11:07:22 -04:00
- 添加Angular 2的类库到我们的测试套装里
2016-04-20 08:07:39 -04:00
- watch the new test fail, and fix it
2016-04-19 11:07:22 -04:00
- 看着新测试失败,然后修复它
2016-02-06 02:27:06 -05:00
1. Test an Asynchronous Service (forthcoming)
- test an asynchronous service class outside of Angular
- write a test plan in code
- fake a dependency
- master the `catch(fail).then(done)` pattern
- move setup to `beforeEach`
- test when a dependency fails
- control async test timeout
1. The Angular Test Environment (forthcoming)
- the Angular test environment and why we need help
- add the Angular Test libraries to the test harness
- test the same async service using Angular Dependency Injection
- reduce friction with test helpers
- introducing spies
1. Test a Component (forthcoming)
- test the component outside of Angular
- mock the dependent asynchronous service
- simulate interaction with the view (no DOM)
- use a spy-promise to control asynchronous test flow
1. Test a Component in the DOM (forthcoming
- test the component inside the Angular test environment
- use the `TestComponentBuilder`
- more test helpers
- interact with the DOM
- bind to a mock dependent asynchronous service
1. Run the tests with karma (forthcoming)
It’ s a big agenda. Fortunately, you can learn a little bit at a time and put each lesson to use.
a(href="#top").to-top Back to top
.l-hr
a(id="jasmine-101")
:marked
# Jasmine Testing 101
2016-04-19 11:07:22 -04:00
# Jasmine测试101
2016-02-06 02:27:06 -05:00
!= partial("../testing/jasmine-testing-101")
a(href="#top").to-top Back to top
.l-hr
a(id="aut")
:marked
# The Application to Test
2016-04-19 11:07:22 -04:00
# 被测试的应用程序
2016-02-06 02:27:06 -05:00
!= partial("../testing/application-under-test")
a(href="#top").to-top Back to top
.l-hr
a(id="first-app-tests")
:marked
2016-03-24 15:30:26 -04:00
# First app test
2016-04-19 11:07:22 -04:00
# 第一个应用程序测试
2016-02-06 02:27:06 -05:00
!= partial("../testing/first-app-tests")
a(href="#top").to-top Back to top
.l-hr
a(id="pipe-testing")
:marked
2016-03-24 15:30:26 -04:00
# Pipe driven development
2016-04-19 11:07:22 -04:00
# 测试驱动开发一个管道
2016-02-06 02:27:06 -05:00
!= partial("../testing/testing-an-angular-pipe")
a(href="#top").to-top Back to top
.alert.is-important
:marked
The testing chapter is still under development.
2016-03-17 10:07:54 -04:00
Please bear with us as we both update and complete it.
2016-04-19 11:07:22 -04:00
测试章节正在开发中,请耐心,我们会更新并完成它。