Jest/Vitest interactive course (runs in the browser)(howtotestfrontend.com) |
Jest/Vitest interactive course (runs in the browser)(howtotestfrontend.com) |
vitest browser mode is really nice too. (new-ish feature, although at this point it isn't exactly new).
Use proper mocks with ts mockito and it will force you to write better code.
Anyways I mostly agree, it’s very annoying to use mocks in jest even past the code smell. But I also find certain DI codebases to be highly annoying too. Exceptionally verbose for what it actually accomplishes at times.
in JS (with Jest/Vitest) it is far too easy to call mock()...
Your course should mention these techniques! Without them tests are unsound!
We do some dependency injection of our framework-level service objects like ServerApiService or RouterService or RecordCacheService (usually with a subclass of the actual implementation) but it hardly needs to be ubiquitous or typical for product developer code.
It's a testing technique used particularly in legacy projects called characterization tests. If you are faced with covering with tests a component you didn't wrote and you don't want to introduce a regression when refactoring it, you just mock existing function calls to assert observable behavior.
In compiled languages such as C++ this is even done with link time stubs.
Calling it code smell conveys the idea you are inexperienced and lack any experience managing test coverage.
I have seen so many broken products where leads where obsessed with 100% coverage and quality tests I just don't believe the methodology.
E2Es are the only tests that tell you whether the product is making money or not with a good approximation.
You have to invest in reducing flakiness and their run time, but if my 5 men team maintaining 6 products could, I think it can be done by more people, yet so many seem to be burned on their 10 year old experience..
Of course there are situations you want to test via normal unit tests and even do TDD (parsers/encoders/math stuff, etc) or you're writing libraries, but the people testing react components and such are involved in delusional productivity porn if that's not the case.