I hate Big Test because:
- ????There flaky tests when a lot of tests are written. Not sure that this is a BigTest fault though but the way we use tests with `setupApplication` is causing this situation. (Viktor Soroka)
- Many apps are using it like e2e and thus code coverage is achieved by just rendering the page (Viktor Soroka)
- Sometimes interactors work weirdly. Such as collection, focusable. (Viktor Soroka)
I like Big Test is better than other tools because:
- ????Interactors.
- Speed is good compared to other 'real browser' testing tools.
I wish Big Test can do:
- ????A global timeout setting. (John Coburn)
- Better error messaging (additional tools to help understand why timeouts/failures have happened) (John Coburn)
- More flexible interactors that allow more advanced functionality - DOM selectors only traverse inward. This can make it awkward to test components that use ReactPortal capabilities (need a 2nd interactor) (John Coburn)
- Simply better documentation. Configuration examples for integration, e2e, component, etc...
- async in test cases (`it` blocks)
- modules mocking
I would keep Big Test if:
- ????It were usable at the platform level for full integration testing (rigid timeouts make this impossible) (John Coburn)
I would rank Big Test on scale (1-worst to 10-best) in Speed:
- ????5 (Tests written with `setupApplication` are really slow and overall the build time in order for tests to run is really slow. More than a minute??? Since jest is only about unit testing the time to build and run the first tests is far less.) Unit tests written with BigTest are pretty fast but jest is slightly faster. (Viktor Soroka)
I would rank Big Test on scale (1-worst to 10-best) in Reliability:
...
I would rank Big Test on scale (1-worst to 10-best) in Mocking facility
- ????5 (sinon and faker actually used to mock stuff, but BigTest lacks the capability of jest to mock the source files. Imagine the component which under the hood uses a timer to display or some transition logic backed by some third party library. It means that with BigTest the tests should need to wait for the time. With jest, though it is possible to stub that transition logic by mocking source files.) (Viktor Soroka)
I would rank Big Test on scale (1-worst to 10-best) in Cost to migrate/rebuild existing tests
- ????7, I gave a try to replace rather simple components with jest and it was pretty easy and all tests in BigTests were migrated to jest. Need to try though on more complex components. The only downside is the lack of interactors capability. Further investigation is needed there but it is not that crucial for me. (Viktor Soroka)
I would rank Big Test on scale (1-worst to 10-best) in Multi-browser support
- ????Have not tried (Viktor Soroka)