SlideShare a Scribd company logo
Testing Applications
Photos by McGinity Photo

Matt Raible • @mraible
Blogger on raibledesigns.com
UI Architect and Java Champion
Father, Skier, Mountain
Biker, Whitewater Rafter
Web Framework Connoisseur
Who is Matt Raible?
Bus Lover
Stormpath Developer Evangelist
Testing Angular Applications - Jfokus 2017
Stormpath User Management
What about YOU?
How long have you been doing web development?

Do you like JavaScript? TypeScript?

What’s your favorite JavaScript framework?

Why are you here?
Quality
“A person who knows how to fix motorcycles—with Quality—is less
likely to run short of friends than one who doesn't. And they aren't
going to see him as some kind of object either. Quality destroys
objectivity every time.”

— Zen and the Art of Motorcycle Maintenance
Software Testing
With motorcycles, you drive to test them.

With software, you can test it without driving it.

Or rather, you can automate the driving.

If you don’t automate tests, you’re still testing!
Hello World with AngularJS
<!doctype html>
<html ng-app>
<head>
<title>Hello World</title>
</head>
<body>
<div>
<label>Name:</label>
<input type="text" ng-model="name" placeholder="Enter a name here">
<hr>
<h1>Hello {{name}}!</h1>
</div>
<script src="http://code.angularjs.org/1.5.8/angular.min.js"></script>
</body>
</html>
Testing Angular Applications - Jfokus 2017
Hello World with Angular
<!DOCTYPE html>
<html>
<head>
<title>Angular QuickStart</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="styles.css">
<!-- Polyfill(s) for older browsers -->
<script src="node_modules/core-js/client/shim.min.js"></script>
<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="systemjs.config.js"></script>
<script>
System.import('app').catch(function(err){ console.error(err); });
</script>
</head>
<body>
<my-app>Loading AppComponent content here ...</my-app>
</body>
</html>
app/main.ts
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);
app/app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
app/app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `<h1>Hello {{name}}</h1>`,
})
export class AppComponent { name = 'Angular'; }
Easiest ways to get started
Angular QuickStart

https://github.com/angular/quickstart 

Angular Seed

https://github.com/mgechev/angular-seed 

Angular CLI

https://github.com/angular/angular-cli
Let’s take a look at a few things…
Angular CLI

TypeScript

Unit Tests

Integration Tests

Continuous Integration

Deployment
Testing Angular Applications - Jfokus 2017
Angular CLI
npm install -g angular-cli
ng new ng2-demo
cd ng2-demo
ng serve
ng test
ng e2e
ng g component
ng g service
ng build
ng --help
ES6, ES7 and TypeScript
TSES7ES6ES5
ES5: es5.github.io 

ES6: git.io/es6features 

ES7: DRAFT

TS: www.typescriptlang.org
TypeScript
$ npm install -g typescript

function greeter(person: string) {

return "Hello, " + person;

}



var user = "Jane User";



document.body.innerHTML = greeter(user);
$ tsc greeter.ts

https://www.typescriptlang.org/docs/tutorial.html
bus.ts
Types of Tests
Unit Tests

End-to-End Tests
Unit Test Example
bus.spec.ts
Live Coding!
What you learned
How to…

Unit test Angular services, mocking Http provider

Unit test Angular components, mocking service

Integration test Angular application

Continuously test and deploy with a CI server
Style Guides
Angular Official Style Guide

https://angular.io/styleguide 

John Papa’s AngularJS Style Guide

https://github.com/johnpapa/angular-styleguide
ng-book 2
A comprehensive guide to developing with
Angular 2

Sample apps: Reddit clone, Chat with RxJS
Observables, YouTube search-as-you-type,
Spotify Search

How to write components, use forms and APIs

Over 5,500+ lines of code!
Testing Angular 2 Applications Book
Unit testing directives, pipes, services, and routes

End-to-end testing with elements and forms

4 of 10 chapters available

Estimated publication: Spring 2017
Don’t be afraid of testing!
Don’t be afraid of testing!
Don’t be afraid of testing!
Stormpath SDK for Angular
Lessons Learned at Stormpath
generator-angular-library is a great tool

npm install -g yo generator-angular-library
yo angular-library
You can override templates in components with ngOutletTemplate

Write lots of tests and demos that use your library
Resources
Demo Code

https://github.com/mraible/ng-demo 

Step-by-step Tutorial

http://gist.asciidoctor.org/?github-mraible/ng-demo//README.adoc
Keep in touch!

raibledesigns.com

@mraible

linkedin.com/in/mraible

Presentations

slideshare.net/mraible

Code

github.com/mraible
Questions?

More Related Content

What's hot (20)

PDF
The Art of Angular in 2016 - Devoxx UK 2016
Matt Raible
 
PDF
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
Matt Raible
 
PDF
What's New in JHipsterLand - Devoxx US 2017
Matt Raible
 
PDF
The Art of Angular in 2016 - vJUG24
Matt Raible
 
PDF
What's This React Native Thing I Keep Hearing About?
Evan Stone
 
PDF
Angular js - 10 reasons to choose angularjs
Nir Kaufman
 
PDF
Spring Boot and JHipster
Eueung Mulyana
 
PPTX
Yeoman
Mohammed Arif
 
PDF
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?
Iván López Martín
 
PPTX
Grails Spring Boot
TO THE NEW | Technology
 
PDF
Front end workflow with yeoman
hassan hafez
 
PPT
Headless BDD & Responsive Test Automation
Shashikant Jagtap
 
ODP
iOS Automation with Cucumber, Appium and Saucelabs
Shashikant Jagtap
 
PDF
Rapidly scaffold your frontend with yeoman
Simon Waibl
 
PPTX
Lazy angular w/ webpack
Rich Snapp
 
PDF
Web Frameworks of the Future: Flex, GWT, Grails and Rails
Matt Raible
 
PPT
No Va Taig April 7 2010
rudy regner
 
PDF
CraftCamp for Students - Introduction to JHipster
craftworkz
 
PDF
Use groovy & grails in your spring boot projects
Fátima Casaú Pérez
 
PPTX
JHipster presentation by Gaetan Bloch
Gaëtan Bloch
 
The Art of Angular in 2016 - Devoxx UK 2016
Matt Raible
 
The Ultimate Getting Started with Angular Workshop - Devoxx France 2017
Matt Raible
 
What's New in JHipsterLand - Devoxx US 2017
Matt Raible
 
The Art of Angular in 2016 - vJUG24
Matt Raible
 
What's This React Native Thing I Keep Hearing About?
Evan Stone
 
Angular js - 10 reasons to choose angularjs
Nir Kaufman
 
Spring Boot and JHipster
Eueung Mulyana
 
GR8Conf 2015 - Spring Boot and Groovy. What more do you need?
Iván López Martín
 
Grails Spring Boot
TO THE NEW | Technology
 
Front end workflow with yeoman
hassan hafez
 
Headless BDD & Responsive Test Automation
Shashikant Jagtap
 
iOS Automation with Cucumber, Appium and Saucelabs
Shashikant Jagtap
 
Rapidly scaffold your frontend with yeoman
Simon Waibl
 
Lazy angular w/ webpack
Rich Snapp
 
Web Frameworks of the Future: Flex, GWT, Grails and Rails
Matt Raible
 
No Va Taig April 7 2010
rudy regner
 
CraftCamp for Students - Introduction to JHipster
craftworkz
 
Use groovy & grails in your spring boot projects
Fátima Casaú Pérez
 
JHipster presentation by Gaetan Bloch
Gaëtan Bloch
 

Similar to Testing Angular Applications - Jfokus 2017 (20)

PDF
Angular Application Testing
Troy Miles
 
PPTX
Dive into Angular, part 5: Experience
Oleksii Prohonnyi
 
PDF
Angular, the New Angular JS
Kenzan
 
PDF
Testing Angular apps_ A complete guide for developers.pdf
Peerbits
 
PPTX
AngularJS with TypeScript and Windows Azure Mobile Services
Rainer Stropek
 
PDF
Evolution and History of Angular as Web Development Platform.pdf
iFour Technolab Pvt. Ltd.
 
PPTX
Top 5 AngularJS Tool for Application Development
Paul Cook
 
PPTX
AngularJS Introduction (Talk given on Aug 5 2013)
Abhishek Anand
 
PPTX
quantum_leap_angularjs_tools_redefining_development_in_2023.pptx
sarah david
 
PDF
Testing AngularJS
Jacopo Nardiello
 
PPTX
Angular 2.0
Mallikarjuna G D
 
PDF
III - Better angularjs
WebF
 
PPTX
Top 10 Angular Development Tools For Developers
Albiorix Technology
 
PPTX
Reason to choose Angular JS for your Web Application
Priyanka Verma
 
PDF
Quick start with AngularJS
Iuliia Baranova
 
PPTX
Angular Js Advantages - Complete Reference
EPAM Systems
 
ODP
Angular 6 - The Complete Guide
Sam Dias
 
PDF
Top 12 Most Useful AngularJS Development Tools to Use in 2025
GrapesTech Solutions
 
PDF
Unit Testing in Angular
Knoldus Inc.
 
PDF
Where and Why Use Angular for Web Development?
1221 North Church Street, Suite 202 Moorestown, NJ 08057
 
Angular Application Testing
Troy Miles
 
Dive into Angular, part 5: Experience
Oleksii Prohonnyi
 
Angular, the New Angular JS
Kenzan
 
Testing Angular apps_ A complete guide for developers.pdf
Peerbits
 
AngularJS with TypeScript and Windows Azure Mobile Services
Rainer Stropek
 
Evolution and History of Angular as Web Development Platform.pdf
iFour Technolab Pvt. Ltd.
 
Top 5 AngularJS Tool for Application Development
Paul Cook
 
AngularJS Introduction (Talk given on Aug 5 2013)
Abhishek Anand
 
quantum_leap_angularjs_tools_redefining_development_in_2023.pptx
sarah david
 
Testing AngularJS
Jacopo Nardiello
 
Angular 2.0
Mallikarjuna G D
 
III - Better angularjs
WebF
 
Top 10 Angular Development Tools For Developers
Albiorix Technology
 
Reason to choose Angular JS for your Web Application
Priyanka Verma
 
Quick start with AngularJS
Iuliia Baranova
 
Angular Js Advantages - Complete Reference
EPAM Systems
 
Angular 6 - The Complete Guide
Sam Dias
 
Top 12 Most Useful AngularJS Development Tools to Use in 2025
GrapesTech Solutions
 
Unit Testing in Angular
Knoldus Inc.
 
Where and Why Use Angular for Web Development?
1221 North Church Street, Suite 202 Moorestown, NJ 08057
 
Ad

More from Matt Raible (20)

PDF
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Matt Raible
 
PDF
Micro Frontends for Java Microservices - Belfast JUG 2022
Matt Raible
 
PDF
Micro Frontends for Java Microservices - Dublin JUG 2022
Matt Raible
 
PDF
Micro Frontends for Java Microservices - Cork JUG 2022
Matt Raible
 
PDF
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Matt Raible
 
PDF
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Matt Raible
 
PDF
Comparing Native Java REST API Frameworks - Devoxx France 2022
Matt Raible
 
PDF
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Matt Raible
 
PDF
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Matt Raible
 
PDF
Java REST API Framework Comparison - PWX 2021
Matt Raible
 
PDF
Web App Security for Java Developers - PWX 2021
Matt Raible
 
PDF
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Matt Raible
 
PDF
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Matt Raible
 
PDF
Web App Security for Java Developers - UberConf 2021
Matt Raible
 
PDF
Java REST API Framework Comparison - UberConf 2021
Matt Raible
 
PDF
Native Java with Spring Boot and JHipster - SF JUG 2021
Matt Raible
 
PDF
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Matt Raible
 
PDF
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Matt Raible
 
PDF
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Matt Raible
 
PDF
JHipster and Okta - JHipster Virtual Meetup December 2020
Matt Raible
 
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Matt Raible
 
Micro Frontends for Java Microservices - Belfast JUG 2022
Matt Raible
 
Micro Frontends for Java Microservices - Dublin JUG 2022
Matt Raible
 
Micro Frontends for Java Microservices - Cork JUG 2022
Matt Raible
 
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Matt Raible
 
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Matt Raible
 
Comparing Native Java REST API Frameworks - Devoxx France 2022
Matt Raible
 
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Matt Raible
 
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Matt Raible
 
Java REST API Framework Comparison - PWX 2021
Matt Raible
 
Web App Security for Java Developers - PWX 2021
Matt Raible
 
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Matt Raible
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Matt Raible
 
Web App Security for Java Developers - UberConf 2021
Matt Raible
 
Java REST API Framework Comparison - UberConf 2021
Matt Raible
 
Native Java with Spring Boot and JHipster - SF JUG 2021
Matt Raible
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Matt Raible
 
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Matt Raible
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Matt Raible
 
JHipster and Okta - JHipster Virtual Meetup December 2020
Matt Raible
 
Ad

Recently uploaded (20)

PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
July Patch Tuesday
Ivanti
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Python basic programing language for automation
DanialHabibi2
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
July Patch Tuesday
Ivanti
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 

Testing Angular Applications - Jfokus 2017

  • 1. Testing Applications Photos by McGinity Photo Matt Raible • @mraible
  • 2. Blogger on raibledesigns.com UI Architect and Java Champion Father, Skier, Mountain Biker, Whitewater Rafter Web Framework Connoisseur Who is Matt Raible? Bus Lover Stormpath Developer Evangelist
  • 5. What about YOU? How long have you been doing web development? Do you like JavaScript? TypeScript? What’s your favorite JavaScript framework? Why are you here?
  • 6. Quality “A person who knows how to fix motorcycles—with Quality—is less likely to run short of friends than one who doesn't. And they aren't going to see him as some kind of object either. Quality destroys objectivity every time.” — Zen and the Art of Motorcycle Maintenance
  • 7. Software Testing With motorcycles, you drive to test them. With software, you can test it without driving it. Or rather, you can automate the driving. If you don’t automate tests, you’re still testing!
  • 8. Hello World with AngularJS <!doctype html> <html ng-app> <head> <title>Hello World</title> </head> <body> <div> <label>Name:</label> <input type="text" ng-model="name" placeholder="Enter a name here"> <hr> <h1>Hello {{name}}!</h1> </div> <script src="http://code.angularjs.org/1.5.8/angular.min.js"></script> </body> </html>
  • 10. Hello World with Angular <!DOCTYPE html> <html> <head> <title>Angular QuickStart</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="styles.css"> <!-- Polyfill(s) for older browsers --> <script src="node_modules/core-js/client/shim.min.js"></script> <script src="node_modules/zone.js/dist/zone.js"></script> <script src="node_modules/systemjs/dist/system.src.js"></script> <script src="systemjs.config.js"></script> <script> System.import('app').catch(function(err){ console.error(err); }); </script> </head> <body> <my-app>Loading AppComponent content here ...</my-app> </body> </html>
  • 11. app/main.ts import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app.module'; platformBrowserDynamic().bootstrapModule(AppModule);
  • 12. app/app.module.ts import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { AppComponent } from './app.component'; @NgModule({ imports: [ BrowserModule ], declarations: [ AppComponent ], bootstrap: [ AppComponent ] }) export class AppModule { }
  • 13. app/app.component.ts import { Component } from '@angular/core'; @Component({ selector: 'my-app', template: `<h1>Hello {{name}}</h1>`, }) export class AppComponent { name = 'Angular'; }
  • 14. Easiest ways to get started Angular QuickStart https://github.com/angular/quickstart Angular Seed https://github.com/mgechev/angular-seed Angular CLI https://github.com/angular/angular-cli
  • 15. Let’s take a look at a few things… Angular CLI TypeScript Unit Tests Integration Tests Continuous Integration Deployment
  • 17. Angular CLI npm install -g angular-cli ng new ng2-demo cd ng2-demo ng serve ng test ng e2e ng g component ng g service ng build ng --help
  • 18. ES6, ES7 and TypeScript TSES7ES6ES5 ES5: es5.github.io ES6: git.io/es6features ES7: DRAFT TS: www.typescriptlang.org
  • 19. TypeScript $ npm install -g typescript function greeter(person: string) {
 return "Hello, " + person;
 }
 
 var user = "Jane User";
 
 document.body.innerHTML = greeter(user); $ tsc greeter.ts https://www.typescriptlang.org/docs/tutorial.html
  • 21. Types of Tests Unit Tests End-to-End Tests
  • 25. What you learned How to… Unit test Angular services, mocking Http provider Unit test Angular components, mocking service Integration test Angular application Continuously test and deploy with a CI server
  • 26. Style Guides Angular Official Style Guide https://angular.io/styleguide John Papa’s AngularJS Style Guide https://github.com/johnpapa/angular-styleguide
  • 27. ng-book 2 A comprehensive guide to developing with Angular 2 Sample apps: Reddit clone, Chat with RxJS Observables, YouTube search-as-you-type, Spotify Search How to write components, use forms and APIs Over 5,500+ lines of code!
  • 28. Testing Angular 2 Applications Book Unit testing directives, pipes, services, and routes End-to-end testing with elements and forms 4 of 10 chapters available Estimated publication: Spring 2017
  • 29. Don’t be afraid of testing!
  • 30. Don’t be afraid of testing!
  • 31. Don’t be afraid of testing!
  • 32. Stormpath SDK for Angular
  • 33. Lessons Learned at Stormpath generator-angular-library is a great tool npm install -g yo generator-angular-library yo angular-library You can override templates in components with ngOutletTemplate Write lots of tests and demos that use your library
  • 34. Resources Demo Code https://github.com/mraible/ng-demo Step-by-step Tutorial http://gist.asciidoctor.org/?github-mraible/ng-demo//README.adoc