


Younes Jaaidi
@yjaaidi


Younes Jaaidi
@yjaaidi
Google Developer Expert
for Angular & Web Technologies



Younes Jaaidi
@yjaaidi
Google Developer Expert
for Angular & Web Technologies
📚 guide-angular.wishtack.io



Younes Jaaidi
@yjaaidi
Google Developer Expert
for Angular & Web Technologies
📚 guide-angular.wishtack.io


📺 marmicode.fr


Younes Jaaidi
@yjaaidi
Google Developer Expert
for Angular & Web Technologies
📚 guide-angular.wishtack.io


📺 marmicode.fr

Trainer, Tech Advisor & eXtreme Programming Coach
at {{yourCompany.name}}


Younes Jaaidi
@yjaaidi
Google Developer Expert
for Angular & Web Technologies
📚 guide-angular.wishtack.io


📺 marmicode.fr

ℹ️ wishtack.io
Trainer, Tech Advisor & eXtreme Programming Coach
at {{yourCompany.name}}


Younes Jaaidi
@yjaaidi
Google Developer Expert
for Angular & Web Technologies
📚 guide-angular.wishtack.io


📺 marmicode.fr

ℹ️ wishtack.io
Trainer, Tech Advisor & eXtreme Programming Coach
at {{yourCompany.name}}
FREE DIAGNOSTIC
Angular Component Unit-Testing Workshop

@yjaaidi

@yjaaidi


Do we really
need tests?

🥵
Stop testing
every change
manually
⚡️
Faster
development
🤖
Automated tests
💪
Confidence
✨
Quality
🐞
Less bugs
🛠
Refactoring
🐇
Faster time
to market
⚽️
Collective
ownership
♻️
Update
dependencies
automatically
(or frequently)
🥳
Pleasure
Not Visible
Visible
@yjaaidi

Tests are the best documentation
@yjaaidi

🚀 Up-to-date
Tests are the best documentation
@yjaaidi

🦋 Symmetric
you get the exact doc of the version you are using
🚀 Up-to-date
Tests are the best documentation
@yjaaidi

🌏 More surface
🦋 Symmetric
you get the exact doc of the version you are using
🚀 Up-to-date
Unit Tests are F.I.R.S.T.
@yjaaidi

🐇 Fast
🐻 Independent
🔁 Repeatable
🤖 Self-validating
⏰ Timely
Testing Components
@yjaaidi

ItemList
ItemPreview
<div> <item-preview>
Component { ... }
<div> <span>
Component { ... }
@yjaaidi

<div> <item-preview>
Component { ... }
<div> <span>
Component { ... }
"Integration"
TestBed.configureTestingModule({
imports: [ItemListModule]
});
ItemList
ItemPreview
@yjaaidi

<div> <item-preview>
Component { ... }
<div> <span>
Component { ... }
Shallow
"Integration"
TestBed.configureTestingModule({
imports: [ItemListModule]
});
TestBed.configureTestingModule({
declarations: [ItemListComponent],
errors: [NO_ERRORS_SCHEMA]
});
ItemList
ItemPreview
@yjaaidi

<div> <item-preview>
Component { ... }
<div> <span>
Component { ... }
Isolated
Shallow
"Integration"
TestBed.configureTestingModule({
imports: [ItemListModule]
});
TestBed.configureTestingModule({
declarations: [ItemListComponent],
errors: [NO_ERRORS_SCHEMA]
});
cmp = new ItemListComponent(...);
ItemList
ItemPreview
@yjaaidi

Let's buy sandwiches

@yjaaidi


@yjaaidi


<sandwich-list>
<cart-preview>
Cart
@yjaaidi

<sandwich-list>
<cart-preview>
Cart
totalPrice
addSandwich(sandwich)
@yjaaidi


⌨️ Grab your keyboards ⌨️
@yjaaidi

⌨️
⌨️
⌨️
⌨️
⌨️
⌨️


@yjaaidi

Jest

@yjaaidi

Jest

⚡️ Fast
@yjaaidi

Jest

👌 Less configuration
⚡️ Fast
@yjaaidi

Jest

👌 Less configuration
✌️ Test parallelization & isolation
⚡️ Fast
@yjaaidi

Jest

👌 Less configuration
🚀 No browser
✌️ Test parallelization & isolation
⚡️ Fast
@yjaaidi

Jest

👌 Less configuration
🚀 No browser
✌️ Test parallelization & isolation
⚡️ Fast
✅ Readable reports
@yjaaidi

Jest

👌 Less configuration
🚀 No browser
✌️ Test parallelization & isolation
⚡️ Fast
✅ Readable reports
🏘 Big community
@yjaaidi

Jest

Compatible with Jasmine syntax
👌 Less configuration
🚀 No browser
✌️ Test parallelization & isolation
⚡️ Fast
✅ Readable reports
🏘 Big community

@yjaaidi

Jest

@yjaaidi


npm install -g @briebug/jest-schematic
ng g @briebug/jest-schematic:add
yarn test --watch # or npm test -- --watch
Jest ♥ Angular

@yjaaidi

Next episodes...
✅ E2E testing
🐒 HttpTestingModule & RouterTestingModule
🦋 Visual testing
@yjaaidi

🏀 RxJS Marble Testing
@yjaaidi


📚 guide-angular.wishtack.io

📺 marmicode.fr
ℹ️ wishtack.io
Trainer, Tech Advisor & eXtreme Programming Coach
at {{yourCompany.name}}
FREE DIAGNOSTIC
FREE
DIAGNOSTIC
FREE
DIAGNOSTIC
Angular Component Unit-Testing Workshop
By Younes
Angular Component Unit-Testing Workshop
- 908