Episode 61: Why Bother Testing? with Jess Sachs
Testing isn’t something that many people enjoy doing, but Jessica Sachs is an exception. Jessica is the tech lead on the component testing team (which spans across four time zones and is fluent in 8 languages) at Cypress, and she is so excited about the developments that have been taking place in this space. In today’s episode Jessica explains the four main steps involved in component testing, the first thing she does when making something testable and why your answer should always be a hard yes if you are asked whether you do TDD. Jessica is also writing a course for Vue Mastery, and she shares with us what the course entails and how it will help alleviate a problem that people in her position regularly encounter. You’ll also hear Jessica and the panels’ thoughts on XPath, E to E tests, and Internet Explorer, and we end off with a wide range of unusual picks for the week!
Overview:
Testing isn’t something that many people enjoy doing, but Jessica Sachs is an exception. Jessica is the tech lead on the component testing team (which spans across four time zones and is fluent in 8 languages) at Cypress, and she is so excited about the developments that have been taking place in this space. In today’s episode Jessica explains the four main steps involved in component testing, the first thing she does when making something testable and why your answer should always be a hard yes if you are asked whether you do TDD. Jessica is also writing a course for Vue Mastery, and she shares with us what the course entails and how it will help alleviate a problem that people in her position regularly encounter. You’ll also hear Jessica and the panels’ thoughts on XPath, E to E tests, and Internet Explorer, and we end off with a wide range of unusual picks for the week!
Key Points From This Episode:
- How Jessica and the panel feel about test writing.
- Jessica’s current role at Cypress.io, and the most euphoric moment of her career.
- The four steps involved in component testing.
- Real World Testing; an explanation of the course Jessica is writing for Vue Mastery.
- A common problem that testers encounter.
- Why Jessica doesn’t mock the Vuex, router or any plugin.
- The first thing Jessica does when making something testable.
- Making code more testable; what Jessica looks for.
- Approaches to writing E to E tests.
- Why XPath was invented and why it’s such a mess.
- Jessica’s first code language (an obscure one that she is proud of!).
- One of the toughest interview questions Jessica has been asked.
- What your answer should always be when someone asks, “Do you do TDD?”
- Where the strength of Cypress component testing lies.
- Diversity in Jessica’s team.
- Why Cypress isn’t going to support Internet Explorer.
- This week’s picks; including drunk darts, anti-static hair brushes, and a show about creating animals.
Tweetables:
- “Getting the component first mounted is the biggest hurdle. I can't stress that enough.” — @_jessicasachs [0:05:13]
- “The situation you find yourself in is that of many developers, where you inherit an application where the person wasn't thinking about testability. And that's not an uncommon scenario. That's pretty normal.” — @_jessicasachs [0:11:32]
- “I don't mock the Vuex router, the Vuex or router, or any plugin. I just treat it like it's real. I find that mocking both removes you from what will actually happen in production, as well as makes your test really coupled to the source code.” — @_jessicasachs [0:13:15]
- “The first thing with making things testable; anything that's a side effect that executes immediately when you import it needs to be a function.” — @_jessicasachs [0:15:28]
Resources mentioned
- Cypress
- Vueconf US
- New Creation Soda
- Brush with Bamboo (ZeroWasteStore)
- Gravity Maze: Falling Marble Logic Maze Game, ThinkFun
- Clubhouse Games (Nintendo Switch)
- Vue Mastery
- Vue Styleguidist
- Vue i18n
- What Query Selector Should I Use?, Kent C. Dodds (Testing Library)
- Vite
- Enjoy the Vue on Twitter
- Enjoy the Vue
Special Guest: Jessica Sachs.