Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    J B Rainsberger Integrated Tests Are A Scam HD

    Christopher Cabanne

    4 HN recommenders · recommended in 6 months, 2017–2023

    YouTube

    1:04:36 · 49K views · Aug 7, 2015

    J. B. Rainsberger argues that large integrated tests are a scam: they are slow, fail opaquely, and give a false sense of coverage. He advocates focused collaboration and contract tests at boundaries instead.

    HN recommends it in testing-strategy debates as the classic case for fewer integration tests and more small, well-contracted unit tests.

    Software Engineering & LanguagesTesting, debugging & developer toolsSoftware architecture & design
    1. 1:03:55
      🚀 TDD, Where Did It All Go Wrong (Ian Cooper)DevTernity Conference619K views • 8 years ago
    2. 45:55
      Ruby Conf 12 - Boundaries by Gary BernhardtConfreaks58K views • 13 years ago
    3. 45:50
      "The Mess We're In" by Joe ArmstrongStrange Loop Conference398K views • 12 years ago
    4. 42:15
      "Performance Matters" by Emery BergerStrange Loop Conference502K views • 7 years ago
    5. 40:20
      "Testing Distributed Systems w/ Deterministic Simulation" by Will WilsonStrange Loop Conference56K views • 12 years ago
    6. 40:27
      "Finding bugs without running or even looking at code" by Jay ParlarStrange Loop Conference42K views • 7 years ago
    7. 42:59
      "How NOT to Measure Latency" by Gil TeneStrange Loop Conference119K views • 11 years ago
    8. 25:01
      Dan Abramov The wet codebaseeswarnichtsmehrfrei27K views • 5 years ago
    9. 47:17
      John Hughes - Testing the Hard Stuff and Staying SaneClojureTV39K views • 12 years ago
    10. 32:23
      Rails Conf 2013 The Magic Tricks of Testing by Sandi MetzConfreaks145K views • 13 years ago
    11. 20:59
      Jim Coplien and Bob Martin Debate TDDalexsmail163K views • 14 years ago
    12. 44:35
      Object-Oriented Programming is BadBrian Will2.6M views • 10 years ago
    13. 22:41
      "Clean" Code, Horrible PerformanceMolly Rocket1.2M views • 3 years ago
    14. 1:01:39
      "Simple Made Easy" - Rich Hickey (2011)Strange Loop Conference220K views • 5 years ago
    15. 30:06
      "Tackling Concurrency Bugs with TLA+" by Hillel WayneStrange Loop Conference24K views • 9 years ago
    16. 49:09
      Debugging with the Scientific Method - Stuart HallowayClojureTV25K views • 10 years ago
    17. 46:37
      Zebras All the Way Down - Bryan Cantrill, Uptime 2017Code & Supply49K views • 9 years ago
    18. 25:06
      "Making Impossible States Impossible" by Richard Feldmanelm-conf63K views • 10 years ago
    19. 21:37
      The Patent Scam IntroAustin Meyer464K views • 10 years ago
    20. 1:32:47
      Data-Oriented Demo: SOA, compositionJonathan Blow201K views • 11 years ago

    6 comments from Hacker News

    1. @1_playerOct 2017· in “Write tests. Not too many. Mostly integration”

      I have adopted the same philosophy. A few resources on this, part of the so-called London school TDD: - [LINK] (and the rest of the Wiki) - [LINK] - Most of the screencasts and articles at [LINK] (especially this brilliant talk [LINK] ) - Integration Tests Are A Scam: this video All of these basically go the opposite way of the article's philosophy: Not too many integration tests, mostly unit tests. Clearly define a contract between the boundaries of the code, and stub/mock on the contract. You'll be left with mostly pure functions at the leaves, which you'll unit test.

      RecommendsView on HN
    2. @mpweiherJul 2018· in “Goodbye Microservices: From 100s of problem children to 1 superstar”

      Sure. I'd venture to say that integration tests should be fewer than unit tests, see hexagonal etc. Hopefully those external interfaces are also more stable, so they don't need to be run as often. I tend to use my integration tests also as characterization tests that verify the simulator/test-double I use for any external systems within my unit tests. See also: the testing pyramid[1] and "integrated tests are a scam"[2], which is a tad click-bait, but actually quite good. [1] [LINK] [2] this video

      RecommendsView on HN
    3. @mihaigalosSep 2022· in “Fit: Framework for Integrated Test”

      I've tried FitNesse professionally. I think it comes short in many regards. To be clear, I think integrated/integration tests in their own only add value if you have a couple of them (meaning <5). Otherwise, they're red and no one knows why. And they take a whole lot of time to execute. JBRainsberger has an nice talk on them [1]. Pactflow have implemented a Contract/Collaboration framework called Pact [2]. I haven't used it professionally but I love the concept. [1] this video [2] [LINK]

      RecommendsView on HN
    4. @pooktrainMar 2017· in “Zen and the Art of Unit Testing”

      Trying to cover your state space with coarse-grained tests in database-backed applications can lead to slow tests suites that are laborious to set up/tear down, which is a barrier to fast build times in CI. This harms productivity both while writing tests and in deployment. J.B Rainsberger says it best: this video

      RecommendsView on HN
    5. @aszenOct 2020· in “Prefer Fakes over Mocks”

      I have been researching into several testing approaches and so far in my experience yes fakes are better than mocks. But what is even better is not having to fake or mock stuff especially for testing business logic. One of the problems we get ourselves into is abstracting service io code into functions and calling them from our business logic code. This forces us to mock all the io calls, instead we should be doing the opposite i.e abstracting business logic into discrete functions of pure data in and out and then calling those functions from our io code. This way we can test the business logic independently of the io code. Testing the business logic now becomes quite simple and one can leverage property testing to further boost our confidence in such tests. Many times the ramaining io code is just calling other functions and doesn't need to be tested. Several other ideas that relate to this are hexagonal architecture, Domain Driver Design, clean architecture and functional core with an imperative shell. Some resources to further explore these ideas: Clean Architecture in Python - [LINK] Why integrated tests are a scam - this video Boundaries - [LINK]

      CitesView on HN