The Rails Testing Pyramid.

We’ve fallen into doing most of what this blog post recommends, which was a nice surprise. Personally, I’m not the best at “throwaway tests”, but that’s something I’ll be keeping in mind.

Gist: test behavior and edge cases at the unit level (the most tests, base of pyramid), test core integration and “non-unit” functionality at the service level (fewer tests, middle of pyramid), and test only critical UI flows at the acceptance level (fewest tests, top of pyramid).