Episode 004: In The Testing Weeds With Sam Phippen and Justin Searls




Tech Done Right show

Summary: <p>Episode 004: Testing</p> <h2>Summary</h2> <p>Sam Phippen, Justin Searls, and Noel Rappin spend this episode talking about the value of test-driven development (TDD) as well as its cost. They discuss the kinds of problems that developers are likely to have after they learn TDD and attempt to apply it to a large application. Learn why Rails is both great and terrible for automated testing, and how testing can influence the structure of your code.</p> <h2>Guests</h2> <p><a href="https://twitter.com/samphippen" rel="nofollow">Sam Phippen</a>: Engineer at <a href="https://www.digitalocean.com/" rel="nofollow">Digital Ocean</a> and member of the <a href="https://github.com/rspec" rel="nofollow">RSpec</a> Core Team</p> <p><a href="https://twitter.com/searls" rel="nofollow">Justin Searls</a>: Writes bad code effortlessly and cofounder of <a href="http://testdouble.com/" rel="nofollow">Test Double</a>. Maintainer of several testing tools, and frequent speaker on test related topics. </p> <h2>Show Notes</h2> <ul> <li><p>01:30 - Intermediate Level Problems in Testing</p></li> <li> <p>04:58 - The Value of Testing</p> <ul> <li> <a href="https://www.youtube.com/watch?v=yTkzNHF6rMs" rel="nofollow">Boundaries by Gary Bernhardt</a> </li> </ul> </li> <li><p>15:15 - Isolated Unit Tests</p></li> <li><p>17:52 - Structuring Applications</p></li> <li> <p>23:13 - <a href="https://en.wikipedia.org/wiki/Test-driven_development" rel="nofollow">Test-Driven Development (TDD)</a></p> <ul> <li><a href="https://www.amazon.com/Growing-Object-Oriented-Software-Guided-Tests/dp/0321503627" rel="nofollow">Growing Object-Oriented Software, Guided by Tests</a></li> </ul> </li> <li><p>33:22 - TDD in a <a href="https://en.wikipedia.org/wiki/Smalltalk" rel="nofollow">Smalltalk</a> Environment</p></li> <li> <p>35:00 - Isolating Tests in a Rails Environment</p> <ul> <li> <a href="http://blog.testdouble.com/posts/2016-12-15-rake-without-rails.html" rel="nofollow">Rake Without Rails</a> </li> </ul> </li> <li> <p>36:54 - Test Tools</p> <ul> <li><a href="https://github.com/seattlerb/minitest" rel="nofollow">minitest</a></li> <li> <a href="https://dannorth.net/introducing-bdd/" rel="nofollow">Dan North: Introducing BDD</a> </li> <li> <a href="https://github.com/testdouble/teenytest" rel="nofollow">teenytest</a> </li> <li><a href="https://github.com/rspec" rel="nofollow">RSpec</a></li> </ul> </li> </ul> <h2>Tips &amp; Resources:</h2> <h3>Sam:</h3> <ul> <li><p><a href="https://www.youtube.com/watch?v=URSWYvyc42M" rel="nofollow">Sandi Metz: The Magic Tricks of Testing @ Rails Conf 2013 </a> </p></li> <li><p><a href="https://github.com/testdouble/test-smells#test-smells" rel="nofollow">Test Smells</a> </p></li> <li><p><a href="https://www.youtube.com/watch?v=VD51AkG8EZw" rel="nofollow">Justin Searls: How to Stop Hating Your Test Suite @ RubyConf 2015</a> </p></li> </ul> <h3>Justin:</h3> <p>Find some little problem and instead of implementing it in a Rails app, type bundle.gem and then make up a name and then practice and invent your own way of organizing code and tests so you can break things down.</p> <h3>Noel:</h3> <ul> <li> <a href="http://junit.sourceforge.net/doc/testinfected/testing.htm" rel="nofollow">JUnit Test Infected: Programmers Love Writing Tests </a> </li> </ul> <p>As you’re trying to test stuff, really try to focus on going back and forth between the tests and the code more rapidly than you’re probably doing so right now.</p><p>Special Guests: Justin Searls and Sam Phippen.</p>