Follow @RoyOsherove on Twitter

Art of Unit Testing, 3rd Edition, With Examples in JavaScript: Tech Reviewers Wanted


I need JS Savvy tech reviewers for the 3rd edition of the book. Apply here, get a free book with your name mentioned in it if your feedback is awesome.

The Rest

Dear Diary. It has been six years since the last edition of Art of Unit Testing. Many things have changed since then, and many have interestingly remained the same.

I’m writing to you today to let you know that I’ve set up with manning to release a 3rd Edition of Art of Unit Testing in the next year. There are quite a few changes to this edition, and the biggest one is that the examples will be in JavaScript. (It would seem the most useful to the most people and a lot of my work these days is centered around that and Java so I think it makes sense).

( I haven’t decided if they should be in plain JS or in Typescript yet. Would love to know what you think in the comments or on twitter.)

So, I need good people to keep me sane as I transform this book into a JS centric one. People to read each chapter and let me know if things don’t make sense, or of my examples suck, or if there are better ways to achieve the same result.

Would you like to be a tech reviewer for this new book?

You’ll get a free copy of the book and a mention inside the book with your name. Also we’ll become great friends and BBQ together every Saturday (If you’re in the tel aviv area).

Fill out this form and I’ll get back to ASAP.


Nothing is written yet. I should have a chapter or two ready in the next month or two. Maybe earlier. I plan to release each chapter separately to the tech reviewers (typos and all) and get some technical feedback on the code samples and ideas. If that sounds like something you might be interested in geeking out on - it’d be a win-win.

Here is the current plan for the revised Table of Contents

Stack used

  • WebStorm

  • Git

  • Jest

  • Node

  • Typescript?

TOC (many things will change..)


  • What's new in the 3rd edition

  • JS

Part 1 - Getting Started

  • The Basics of Unit Testing

    • (new) What's in a function?

      • Return value

      • Noticeable State Change

      • Calling a Third Party

    • (new) Entry Points & Exit Points

    • Units & Unit Of Work

    • Properties of a Good Unit Test

  • A first Unit Test

Part 2 - Core Techniques

  • Using Stubs to Break Dependencies

    • (new) Faking Callbacks

  • Interaction Testing using Manual Spies, Mocks

  • Isolation (Mocking) Frameworks

  • Digging Deeper into Isolation Frameworks

Part 3 - The Test Code

  • Test Hierarchies & Organization

  • The Pillars of Good Unit Tests

    • (new) Multiple naming conventions

    • (new) Three important pieces of information in a name

Part 4 - Design & Process

  • (new) Unit Tests and a Pipeline Driven Culture

  • (new) Playing well with others

    • Other types of Tests

    • Using Test Recipes to Prevent Duplication

  • (new) Lies, Damned Lies, and Unit Testing Metrics

  • Integrating Unit Testing into the organization

  • Working with Legacy Code

  • (new) Refactoring DOs and DONTs

  • (changed) Design & Testability

Appendix - JS Testing Tools & Frameworks

So, if you want to be a tech reviewer on the book: I’m looking for people with good Node.JS/Javascript experience that would be willing to challenge me on technical details and ideas. Go here and submit yourself.

Can you write for 5 minutes?

Announcing Continuous Delivery Israel Meetup - First Meeting (June 24)