Testing Angular Applications /
Testing Angular Applications teaches you how to make testing an essential part of your development and production processes. You'll start by setting up a simple unit testing system as you learn the fundamental practices. Then, you'll fine-tune it as you discover the best tests for Angular...
Otros Autores: | |
---|---|
Formato: | Electrónico eBook |
Idioma: | Indeterminado |
Publicado: |
[Place of publication not identified]
Manning Publications,
2019.
|
Temas: | |
Acceso en línea: | Texto completo (Requiere registro previo con correo institucional) |
Tabla de Contenidos:
- Intro
- Titlepage
- Copyright
- Dedication
- foreword
- preface
- acknowledgments
- about this book
- Who should read this book
- How this book is organized: a roadmap
- About the code
- Book forum
- about the authors
- about the cover illustration
- Chapter 1: Introduction to testing Angular applications
- 1.1 Angular testing overview
- 1.2 Getting friendly with TypeScript
- 1.3 A closer look at test types
- 1.3.1 Unit tests
- 1.3.2 E2E tests
- 1.3.3 Unit tests vs. E2E tests
- Summary
- part 1: Unit testing
- Chapter 2: Creating your first tests
- 2.1 Writing tests using Jasmine
- 2.1.1 Writing basic tests
- 2.2 Testing classes
- 2.2.1 Adding the rest of the tests
- Summary
- Chapter 3: Testing components
- 3.1 Basic component tests
- 3.2 Real-world component testing
- 3.2.1 Importing the dependencies
- 3.2.2 Setting up the tests
- 3.2.3 Adding the tests
- Summary
- Chapter 4: Testing directives
- 4.1 What are directives?
- 4.1.1 Components vs. directives
- 4.1.2 Different directives
- 4.2 Testing attribute directives
- 4.2.1 Introducing the favorite icon directive
- 4.2.2 Creating tests for FavoriteIconDirective
- 4.2.3 Setting up the FavoriteIconDirective test suite
- 4.2.4 Creating the FavoriteIconDirective tests
- 4.3 Testing structural directives
- 4.3.1 Introducing ShowContactsDirective
- 4.3.2 Creating your tests for ShowContactsDirective
- 4.3.3 Setting up the ShowContactsDirective test suite
- 4.3.4 Creating the ShowContactsDirective tests
- Summary
- Chapter 5: Testing pipes
- 5.1 Introducing PhoneNumberPipe
- 5.2 Testing PhoneNumberPipe
- 5.2.1 Testing the default usage for a pipe
- 5.2.2 Testing a pipe with a single parameter
- 5.2.3 Pipes with multiple parameters
- Summary
- Chapter 6: Testing services
- 6.1 What are services?
- 6.2 How do services work in Angular?.
- 6.2.1 Dependency injection
- 6.2.2 The @Injectable class decorator
- 6.3 Creating services with Angular CLI
- 6.4 Testing PreferencesService
- 6.4.1 Testing for failures
- 6.5 Testing services with promises
- 6.5.1 How asynchronous changes testing
- 6.5.2 Testing for failures with asynchronous services
- 6.6 Testing HTTP services with observables
- Summary
- Chapter 7: Testing the router
- 7.1 What is the Angular router?
- 7.1.1 Configuring the router
- 7.1.2 Route guards: the router's lifecycle hooks
- 7.2 Testing routed components
- 7.2.1 Testing router navigation with RouterTestingModule
- 7.2.2 Testing router parameters
- 7.3 Testing advanced routes
- 7.3.1 Route guards
- 7.3.2 Resolving data before loading a route
- Summary
- part 2: End-to-end testing
- Chapter 8: Getting started with Protractor
- 8.1 How Protractor works
- 8.2 Writing your first Protractor test
- 8.2.1 File structure
- 8.3 Installing and running
- 8.4 Interacting with elements
- 8.4.1 Test scenario: creating a new contact
- 8.4.2 Test scenario: workflows that don't create a new contact
- 8.5 by and element methods
- 8.6 Interacting with a list of elements
- 8.6.1 Filtering web elements
- 8.6.2 Mapping the contact list to an array
- 8.6.3 Reduce
- 8.7 Page objects
- Summary
- Chapter 9: Understanding timeouts
- 9.1 Kinds of timeouts
- 9.2 Testing pages without Angular
- 9.2.1 Disabling waitForAngular
- 9.2.2 Automatically waiting for Angular
- 9.2.3 When to use browser.waitForAngularEnabled()
- 9.3 Waiting with ExpectedConditions
- 9.3.1 Waiting for the contact list to load
- 9.3.2 Testing a dialog
- 9.3.3 Waiting for elements to become stale
- 9.4 Creating custom conditions
- 9.4.1 Using browser.wait
- 9.4.2 Getting elements from the browser
- 9.5 Handling long-running tasks
- 9.5.1 Using expected conditions.
- 9.5.2 The browser event loop
- 9.5.3 What happened to timeout?
- 9.5.4 Highway to the Angular zone
- 9.5.5 Fixing the test
- Summary
- Chapter 10: Advanced Protractor topics
- 10.1 Configuration file in depth
- 10.1.1 Driver provider options
- 10.1.2 Desired capabilities
- 10.1.3 Plugins
- 10.1.4 Environment variables
- 10.2 Screenshot testing
- 10.2.1 Taking screenshots
- 10.2.2 Taking screenshots on test failure
- 10.2.3 Comparing screenshots
- 10.3 Experimental debugging features
- 10.3.1 WebDriver logs
- 10.3.2 Highlight delay
- 10.3.3 Blocking proxy
- 10.4 The control flow and debugging with Chrome DevTools
- 10.4.1 Asynchronous functions and promises
- 10.4.2 The WebDriver control flow
- 10.4.3 The future: async/await
- 10.4.4 Using Chrome DevTools
- Summary
- part 3: Continuous integration
- Chapter 11: Continuous integration
- 11.1 Jenkins
- 11.1.1 Setting up Jenkins
- 11.1.2 Unit tests
- 11.1.3 E2E tests
- 11.2 CircleCI
- Summary
- Appendix A: Setting up the sample project
- Introducing the Angular CLI
- Installing prerequisites
- Installing the Angular CLI the first time
- Updating an old version of the Angular CLI
- Installing the sample project
- Installing dependencies
- Running the application
- Appendix B: Additional resources
- Angular testing
- General testing
- Index
- Lists of Figures, Tables and Listings.