I wasn’t a huge fan of end to end testing in the past mainly because I hadn’t used it much on projects, had the misconception that it was for “dedicated testers”, and felt like it would require a lot of time to get tests in place. My current project caused me to rethink end-to-end tests though. Due to some complex scenarios in an application I’m working on I decided to look at end-to-end tests again and realized they could really help me out. Now I think end-to-end tests are an amazing way for developers and testers alike to ensure that code is actually doing what you expect it to do for end users. With a little practice you can get key tests up and running fairly quickly.
I use Cypress.io to write and run tests which allows you to easily walk through successful and failed tests to see what happened, analyze what the screen looked like at any given point, and much more. It’s impressive and something I use a lot now to add more confidence to the code I’m building. I find it especially useful when I need to test complex DOM scenarios that I don’t feel are appropriate for unit tests.