angular-cn/public/docs/ts/latest/guide/testing.jade

98 lines
3.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

: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. They **clarify** what the code does both when used as intended and when faced with deviant conditions.
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.
a(id="top")
:marked
# Table of Contents
1. [Jasmine Testing 101](#jasmine-101)
- setup to run Jasmine tests in the browser
- basic Jasmine testing skills
- write simple Jasmine tests in TypeScript
- debug a test in the browser
1. [The Application Under Test](#aut)
1. [First app test](#first-app-tests)
- test a simple application interface outside of Angular
- where to put the test file
- load a test file with systemJS
1. [Pipe driven development](#pipe-testing)
- create a test before creating a class
- load multiple test files in our test harness, using system.js
- add the Angular 2 library to our test harness
- watch the new test fail, and fix it
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)
Its 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
!= partial("../testing/jasmine-testing-101")
a(href="#top").to-top Back to top
.l-hr
a(id="aut")
:marked
# The Application to Test
!= partial("../testing/application-under-test")
a(href="#top").to-top Back to top
.l-hr
a(id="first-app-tests")
:marked
# First app test
!= partial("../testing/first-app-tests")
a(href="#top").to-top Back to top
.l-hr
a(id="pipe-testing")
:marked
# Pipe driven development
!= 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.
Please bear with us as we both update and complete it.