---
title: "Art of Unit Testing, 3rd Edition, With Examples in JavaScript: Tech Reviewers Wanted"
url: "https://osherove.com/blog/2019/7/26/art-of-unit-testing-3rd-edition-with-examples-in-javascript-tech-reviewers-wanted.md"
canonical: "https://osherove.com/blog/2019/7/26/art-of-unit-testing-3rd-edition-with-examples-in-javascript-tech-reviewers-wanted"
published: "2019-07-26T15:08:45"
updated: "2019-07-26T15:08:45"
tags: []
author: "Roy Osherove"
description: "TLDR: 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…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

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

By Roy Osherove July 26, 2019

# TLDR:

I need JS Savvy tech reviewers for the 3rd edition of the book. [Apply here,](http://review.artofunittesting.com/) 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](https://www.manning.com/books/the-art-of-unit-testing-second-edition). 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**](https://twitter.com/RoyOsherove)**.)**

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.](http://review.artofunittesting.com/)

## Schedule:

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..)

## Pre

- 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. [https://airtable.com/shrtohxHT8RSsfBLc](http://review.artofunittesting.com/)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
