Younes Jaaidi

JavaScript Conference 2023 (Warsaw & Online)
Learn from the Best
Meet Younes Jaaidi

Younes Jaaidi

Fake it till you Mock it

No matter what tests you implement, sooner or later, you will eventually need "Test Doubles". But what is a "Test Double"? A jargon for saying "Mock" or more than that?

Although attractive, especially in the JS ecosystem, some "Test Doubles" can make our tests more expensive to maintain while harming their readability. They can also over-specify our tests and couple them to implementation details... even worse, they can end up discouraging us from implementing new tests, or even pushing us to get rid of some of them.

Oops. I don't have much room to tell you the rest here, but I'll see you at JS Poland to tell you how "Fakes" and their faithful companions "Object Mothers" and "Gloves" end up becoming the pillars of your testing strategy.

Younes Jaaidi - Software Development Cook, Teacher & Coach, GDE | France

Younes is a Software Cook born in eXtreme Programming, which made him a passionate advocate of Collective Ownership, TDD and snacks in the office.

He trains and coaches teams like yours to cook better apps. He’s also an NX champion, a Google Developer Expert for Angular and Web Technologies and a mediocre sailor.

His favorite command is `sleep 300; git reset --hard; git clean -df`

Workshops

Pragmatic Angular Testing - Master Class (stationary & online)

Testing or more specifically, front-end testing is undeniably in the top 3 of the most complex topics associated with Angular & front-end development.

When one is confronted with this complexity, it is tempting to give up, but at what cost? It is totally possible to develop an application without tests but is it really faster? What happens to code maintainability a few months or sometimes just weeks later? Can we serenely refactor and deploy our apps regularly while it is getting older and complex in our hands? What about end-to-end tests, they sound attractive but are they enough?

This workshop presents, through practical exercises, pragmatic Angular testing techniques. You will also learn how to implement simple, meaningful, maintainable, and above all profitable tests.

What attendees will learn

During this workshop, you will learn:
- how to implement tests for your Angular application with the Test-Driven Development approach,
- how to choose the type of tests that fits best depending on the context,
- how to decouple tests from code to encourage refactoring and tidying up when needed,
- how to implement maintainable and human-readable tests,
- the difference between dummies, stubs, spies, mocks, and fakes + how and when to use them,
- the difference between isolated, shallow & integration component testing,
- how to choose the right scope for your tests,
- lots of tips & tricks that will help you adopt a pragmatic testing strategy.

Course Benefits
You will learn how to write profitable tests, in other terms, you'll learn how to reduce the cost of writing and maintaining tests while increasing their trustworthiness. This will boost the whole team’s confidence and efficiency. You will be able to choose the right tests to implement and how to implement them. You will also learn how to leverage the benefits of Progressive TDD to change your code with confidence, and you will be able to decouple your tests from the tested code so you change the code structure without having to fix tests all the time.

Workshop Agenda

👨🏻‍🏫 Overview

👨🏻‍🏫Introduction to testing
- Why test?
- What should we expect from a test?
- The different types of tests: Narrow & Wide vs Unit & Integration.

👨🏻‍🏫Jest
- Do you need Jest?
- Pros & cons.

💻 Exercise: First Test
- Progressive TDD.
- Making tests readable and maintainable with Object Mothers.
- Tips & Tricks.
- Testing asynchronous code.

💻Exercise: Test Doubles
- Dummies vs Stubs vs Mocks vs Spies vs Fakes: which one should we use?
- Contract testing fakes

👨🏻‍🏫Component Testing
- Different types of component tests: Integration vs Shallow vs Isolated.
- Angular Testing Library: Pros & Cons.
- Cypress Component Testing: Pros & Cons.
- Playwright Component Testing: Pros & Cons.

💻Exercise: Testing Components with Playwright Component Testing
- Which Test Doubles should we use?
- Testing Inputs & Outputs based communication.

👨🏻‍🏫Visual Regression Testing
- Testing the presentation.
- Visual regression testing with Playwright Component Testing

👨🏻‍🏫Building your Pragmatic Testing Strategy
- What should we test and how?
🙋‍♀️ Q/A

Learn from the Best Featured Speakers

Noam Honig

Creator of Remult, remult.dev | Israel

Marcin Hoppe

Principal Security Engineer , Okta | Poland

Arisa Fukuzaki

Developer Relations Engineer, Storyblok | Germany

Miško Hevery

Chief Technology Officer, Builder.io | USA

Daniel Phiri

Developer Advocate, Weaviate | France

Katarzyna Janus

Software Engineer, Digital Hub Warsaw, Bayer | Poland

Michael Hladky

CEO, push-based.io | Austria

Tomasz Ducin

Independent Consultant, Architect, Developer & Trainer, Poland

Shani Geva

Frontend Software Engineer, Tech a Hike | Israel

Sebastian Gos

Development Manager, BEC | Poland

Younes Jaaidi

Software Development Cook, Teacher & Coach, GDE | France

Aureo Beck

Project Lead Developer, Irish Life Health | Poland

Maciek Palmowski

DevRel, Kinsta | Poland

Mateusz Ostafil

Technology Evangelist, Divante | Poland

Hila Fish

Senior DevOps Engineer, Wix.com | Israel

Bartosz Wasilew

Senior Software Engineer, G-Group.dev | Poland

Petr Glaser

Founder, Nauč mě IT | Germany

Nir Kaufman

Front End Tech Lead, Tikal | Israel

Alex Okrushko

Principal UI Architect, Cisco | Canada

Gerard Sans

Developer Evangelist for Web and Cloud, UK

Enea Jahollari

GDE, Trainer, Senior Software Engineer, Push-Based.io | Albania

Juan Herrera

Google Developer Expert, Austria

Artsiom Marozau

Software Engineering Team Leader, EPAM | Poland

Kamil Michalski

Front End Consultant and Trainer, Poland

Michael Egger-Zikes

Trainer & Consultant, AngularArchitects.io | Austria

Jakub Pawlak

Frontend Angular Developer, BEC | Poland

Dhananjay Kumar

Teacher and Consultant, ngIndia | India

Maciej Czerwiakowski

Independent IT Consultant, owner of 13DSGN.COM, Poland

Fanis Prodromou

Google Developer Expert, CodeShotsWithProfanis | Greece

Anton Ilchenko

Software Engineering Team Leader, EPAM | Spain

Paweł Kozioł

Lead Software Engineer, Digital Hub Warsaw, Bayer | Poland

Jakub Andrzejewski

Senior Developer, Vue Storefront | Poland

Manfred Steyer

Consultant and Author, softwarearchitekt.at | Austria

Companies that support our community Our Sponsors

By becoming a sponsor of JS Poland you will get an excellent opportunity to showcase your company and products to 1000 most active European developers. Such exposure will definitely help you to generate interest in your company, as well as allow you to find new business partners and potential employees. To learn more about our sponsorship offer, please fill in the form.

Join our mailing list

Sign up to receive updates about JS Poland, including workshops, speaker previews, ticket launches, JS Awards, JavaScript Master Podcast, Behind the Code Magazine, CFP details and other exclusive content. We won’t spam you and will only send you emails we genuinely think you’ll find interesting. You can unsubscribe at any time and you can find more information here.