7 Matching Annotations
- Jun 2021
This is why for a recent Angular+Rails project we chose to use a testing stack from the backend technology’s ecosystem for e2e testing.
Rather than write new tooling we decided to take advantage of tooling we had in place for our unit tests. Our unit tests already used FactoryBot, a test data generation library, for building up test datasets for a variety of test scenarios. Plus, we had already built up a nice suite of helpers that we coud re-use. By using tools and libraries already a part of the backend technology’s ecosystem we were able to spend less time building additional tooling. We had less code to maintain because of this and more time to work on solving our customer’s pain points.
The problem domain and the data involved in this project was complicated enough. We decided that not having to worry about unknowns with the frontend end-to-end testing stack helped mitigate risk. This isn’t to say you should always going with the tool you know, but in this instance we felt it was the right choice.
This particular project team came in with a lot of experience using testing tools like RSpec and Capybara. This included integrating with additional tools like Selenium WebDriver, Chrome and Chromedriver, data generation libraries like FactoryBot, and task runners like Rake. We had less experience doing end-to-end testing with Protractor even though it too uses Selenium WebDriver (a tool we’re very comfortable with).
There are times to stretch individually and as a team, but there are also times to take advantage of what you already know.
- how to choose a dependency/library/framework
- software stack: choosing: factors: code reuse
- how to choose software stack
- using disparate technologies in a single project
- me too
- don't reinvent the wheel
- software stack: choosing: factors: familiarity/experience
- people stick to what they know
- don't repeat yourself
- good advice
- wise choice
- key point
- avoid extra/needless work
- testing: stack: choosing
- testing: stack
- software stack: choosing
- frontend vs. backend: owning both ends
- distributed (client/server) system
- reuse/leverage existing _ when possible
- testing: end-to-end
- Mar 2021