Real Talk JavaScript

Episode 3: Dan Wahlin on End to End Testing with Cypress.io

Episode Summary

John and Ward talk with Dan Wahlin about how he approaches and finds value in end to end testing tools. Dan discusses what brought him to end to end tests and his experience with Cypress.io and Protractor.

Episode Notes

Recording date: 2018-09-13

Tweet

John Papa https://twitter.com/john_papa

Ward Bell https://twitter.com/wardbell

Dan Wahlin https://twitter.com/danwahlin

(0:03:30) Ward asks Dan when there are too many end to end tests

(0:04:23) Dan talks about how he got into end to end tests

(0:06:42) Ward talks about how he approaches testing a component

(0:07:50) Dan talks about how deep routes in javascript frameworks help end to end testing

(0:10:00) John asks Dan about how testing workflows can be a sweet spot for end to end tests

(0:10:47) John asks Dan how he uses id vs class in elements to locate what he wants to test

(0:12:20) Dan mentions how he uses css selectors to locate what he wants to test

(0:12:50) Ward says don't drill down through your HTML to locate elements for testing

(0:15:47) Dan talks about his experience with Protractor and Selenium https://www.seleniumhq.org/

(0:16:26) Dan talks about how he uses Cypress.io https://www.cypress.io/

(0:18:40) Dan talks abot how Cypress.io doesn't work in all browsers

(0:19:10) Ward mentions how he uses Test Cafe http://devexpress.github.io/testcafe/

(0:19:50) Dan discusses his pain points for testing child routing without end to end tests

(0:21:00) Dan says he wrote his first 5 or 10 tests with Cypress within an hour

(0:21:36) Ward says end to end tests can be more fragile and slower than unit tests

(0:21:56) Ward says his large team uses end to end tests because it makes sure that nobody breaks anybody else

(0:24:25) Dan says Cypress is pretty fast to run

(0:24:58) Dan says he uses TypeScript a lot

(0:25:20) John asks Dan "how fast is fast?"

(0:27:00) John asks Dan to clarify how he handles authenticating during an end to end test

(0:28:30) Ward asks Dan how if he opens the browser for each test, or once for the entire sequence of tests

(0:30:00) Dan disucsses how he uses containers for testing

(0:21:40) Edge browser https://www.microsoft.com/en-us/windows/microsoft-edge

(0:23:37) Sauce Labs https://saucelabs.com/

(0:31:28) John talks about security expert Brian Clark https://twitter.com/_clarkio

(0:32:10) Ward discusses how animations can cause tests to run slower

(0:33:30) Dan says Cypress is good at responding in github

(0:34:03) Cypress on twitter https://twitter.com/Cypress_io

(0:34:14) Cypress github issues https://github.com/cypress-io/cypress/issues

(0:38:25) Dan talks about Electron https://electronjs.org/

(0:39:00) Dan talks about time travel in cypress's test tools

(0:42:03) Cross browser testing in Cypress.io https://github.com/cypress-io/cypress/issues/310

(0:49:00) John asks Dan about how you can use npm install for cypress

(0:50:19) Dan talks about how it works (Cypress.io) https://www.cypress.io/how-it-works/

(0:51:10) Cypress Docs https://docs.cypress.io/guides/overview/why-cypress.html

(0:53:47) Someone to follow: Brandon Roberts https://twitter.com/brandontroberts

(0:54:05) Someone to follow: Tracy Lee https://twitter.com/ladyleet and https://www.thisdot.co/labs

(0:55:00) Someone to follow: Netanel Basal https://twitter.com/NetanelBasal and https://github.com/datorama/akita

(0:55:48) Someone to follow: Alyssa Nicoll https://twitter.com/AlyssaNicoll

More Resources

Wahlin Consulting (https://codewithdan.com)