From b489d0a0a8e805099d3c28e98b88127b7e57aa95 Mon Sep 17 00:00:00 2001 From: Zhicheng Wang Date: Mon, 30 May 2016 09:22:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=8C=87=E5=8D=97-=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=20=E7=B4=A2=E5=BC=95=E8=AF=91=E5=AE=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/docs/ts/latest/testing/index.jade | 136 ++++++++++++++++++++++- 1 file changed, 130 insertions(+), 6 deletions(-) diff --git a/public/docs/ts/latest/testing/index.jade b/public/docs/ts/latest/testing/index.jade index 1e059f0663..6221e3a4e9 100644 --- a/public/docs/ts/latest/testing/index.jade +++ b/public/docs/ts/latest/testing/index.jade @@ -1,20 +1,21 @@ :marked We write **unit tests** to explore and confirm the **behavior** of parts of our application. - 我们编写**单元测试**来探索和确认我们应用程序的**行为**部分。 + 我们编写**单元测试**来探索并巩固应用程序中的**行为**部分。 1. They **guard** against breaking existing code (“regressions”) when we make changes. - 1. 当我们改变代码时,它们**守护**已有代码,以防被破坏。 + 1. 当我们做出修改时,它们会**守护**已有代码,防止其被破坏。 1. They **clarify** what the code does both when used as intended and when faced with deviant conditions. - 1. 在我们正确使用代码和面对异常情况时,它们**澄清**代码做什么。 + 1. 当我们正确使用代码和面对异常情况时,它们会让代码的用途更加**明晰**。 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. - 1.它们**揭露**我们设计的执行的错误。测试强迫我们从多个角度看代码。当应用程序的一个部分看起来很难测试,我们可能会发现设计缺陷,这是我们可以立刻修复的,而不是等到它变的很难修复的时候。 + 1. 它们会**揭露**我们设计和实现中的错误。测试会强迫我们从多种角度看代码。如果应用程序的一个部分看起来很难测试,这可能就意味着存在设计缺陷。 + 我们可以立即修复它,而不用等到它变得不可收拾的那一天。 .alert.is-important :marked @@ -24,50 +25,173 @@ specific features of Angular 2 and the Angular 2 testing library may not be correct. Please bear with us. - 这些测试的章节是 + 这些关于测试的章节写于Angular 2 Beta版发布之前,并且已经准备做重大更新。 + 这些素材中很多都是准确而有意义的,但是所引用的Angular 2特有特性和测试库可能是不正确的。各位见谅。 :marked Here is what we’ll learn in the unit testing chapters. + 下面是我们将在单元测试一章中学到的: + 1. Jasmine Testing 101 + + 1. Jasmine测试101 + - 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 + + - 在浏览器中调试一个测试 + 1. The Application Under Test + 1. 带测试的应用程序 + 1. Test a class + + 1. 测试一个类 + - test a simple application class outside of Angular + + - 在Angular测试环境外测试简单的应用类 + - where to put the test file + + - 把测试文件放在哪里 + - load a test file with systemJS + + - 用SystemJS加载测试文件 + 1. Test a Pipe + + 1. 测试一个管道 + - 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加载多个测试文件 + 1. Test an Asynchronous Service + + 1. 测试异步服务 + - 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 + + - 控制异步测试的超时时间 + 1. The Angular Test Environment + + 1. 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 + + - 引入侦探类 + 1. Test a Component - - test the component outside of Angular + + 1. 测试组件 + + - 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)来控制异步测试工作流 + 1. Test a Component in the DOM + + 1. 在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 + + - 绑定到一个模拟的被依赖异步服务 + 1. Run the tests with karma + 1. 用Karma运行这些测试 + It’s a big agenda. Fortunately, you can learn a little bit at a time and put each lesson to use. + + 这是一个很大的日程表。幸运的是,我们可以一次只学一小点,然后把它们投入实战。