Beyond being the leading human-readable alternative to Bazel for organizing a Monorepo, among other qualities, Nx is also a tool that allows you to easily split and organize your applications into libraries. But why would we give in to such a temptation? Is it for simple aesthetics, or are there deeper benefits?
Let's meet at this talk to see for yourself the benefits that Nx can bring you, starting with a progressive adoption strategy tomorrow.
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
CEO, push-based.io | Austria
Independent Consultant, Architect, Developer & Trainer, Poland
Front End Tech Lead, Tikal | Israel
Consultant, Inmeta | Norway
Senior Cloud Advocate, Microsoft | UK
Head of DevRel, Weaviate | Denmark
CEO, datAInsights GmbH | Austria
Developer Advocate, Weaviate | France
Teacher and Consultant, ngIndia | India
Tech Leader, Senior Software Engineer, Sii | Poland
Full Stack Software Developer, Push-Based | Poland
Founder & Developer, GDE, e-square.io | Israel
Founder, HiRez.io | Israel
Trainer & Consultant, AngularArchitects.io | Austria
Senior Developer, Vue Storefront | Poland
Software Development Cook, Teacher & Coach, GDE | France
Back End Developer, Podme | Sweden
Lead Performance Engineer, Trainer & Consultant, push-based.io | Austria
Senior Software Engineer, Snowflake | Canada
Software Architect, Scania Group | Sweden
Developer Evangelist for Web and Cloud and Generative AI, UK
Full Stack Engineer, push-based.io | Austria
Trainer and Consultant, AngularArchitects.io | Austria
Core Team NgRx & AnalogJS, SMG | Serbia
Consultant and Author, softwarearchitekt.at | Austria
GDE, Trainer, Senior Software Engineer, Push-Based.io | Albania
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.