Mike is a Principal Consultant at Object Partners, a software consultancy based out of Minneapolis. Working from the heart of flyover country in Omaha, Nebraska, he works primarily with Spring Boot and React to build custom software for clients.
Modern web applications have to deal with a lot of change and unpredictability. Between ever-shifting dependencies, rapid development cycles, and an increasing variety of client devices it can be difficult to ensure the quality and consistency of the user experience. Automated testing has offered solutions to these problems for quite some time, but traditional solutions in this space have been limited by instability and difficult development and maintenance.
Cypress is a relatively new tool in this space that aims to improve the experience of developing automated tests. By focusing on modern clients and providing an easy-to-use UI Cypress makes it easy to write tests and diagnose them when things go wrong.
In this session we'll go from start to finish setting up Cypress and writing a test suite for a sample application. No experience with automated testing is necessary.
React Redux is a great way to handle application state, but it can get complicated when you have to integrate that concept into a natural workflow that can fork and interact based on unpredictable, asynchronous user input. Redux Sagas is a tool that attempts to make this easier. Similar to Thunks, it provides a way to handle happens-before logic and clean up asynchronous events, but Sagas attempt to take it a step further. Sagas use ES2015 Generators to better abstract event flows into synchronous-looking logic while providing additional ways to combine, split, and compare multiple concurrent event streams. Additionally, the abstractions it uses makes them incredibly easy to test. In this talk we'll briefly discuss Generators before diving into syntax and examples of using Redux Sagas in a React Redux application and how to test them. Familiarity with React and Redux is a plus but not a requirement for this session.