https://www.youtube.com/watch?v=VD51AkG8EZw
test-scoped logic
At 12:15 talks about cleaning up the Kata like:
In tests, when faced with duplication vs. readability, I tend to favor readability in my tests a little bit more than I do in my production code.
sandi metz - "squint test"
Always calls the thing under test the "subject" and always calls the result "result" or "results". 100% of the time.
Like's Jim Weirich's "given"
Makes two suites. One is fully integrated, and one it as isolated as possible
talk-how-to-stop-hating-your-test-suite#consistency1 We relished the opportunity to lock in those arbitrary decisions because we knew it would buy us consistency. talk-how-to-stop-hating-your-test-suite#consistency1
Tests are not actually maximally realistic (doesn't check production DNS, etc)
Less integrated tests give us design feedback and are easier to reason about.
23:45 testing-concept-redundant-coverage (think about Ed needing to change a bunch of stuff just to get the tests working
talk-how-to-stop-hating-your-test-suite#the-critical-need-for-speed-in-testing1 2 At 32:00 through 35 he talks about speed in the testing https://youtu.be/VD51AkG8EZw?t=32m6s ... how many "thoughts" you can have in a day. It mirrors my thinking exactly. talk-how-to-stop-hating-your-test-suite#the-critical-need-for-speed-in-testing1 2
talk-how-to-stop-hating-your-test-suite#implement-features-outside-your-app1 Still too slow? Implement features outside your app and integrate later. talk-how-to-stop-hating-your-test-suite#implement-features-outside-your-app1
talk-how-to-stop-hating-your-test-suite#false-negatives-because-of-slow-tests-and-ci1 41:45 - slow tests are a big cause of false negative test failures because you don't run them all locally and you push to CI to see what broke. Integration tests are often the cause of these. talk-how-to-stop-hating-your-test-suite#false-negatives-because-of-slow-tests-and-ci1
The TL;DR of this talk is please write fewer integration tests