---
title: "Fifteen things I look for in an Isolation framework"
url: "https://osherove.com/blog/2013/11/23/fifteen-things-i-look-for-in-an-isolation-framework.md"
canonical: "https://osherove.com/blog/2013/11/23/fifteen-things-i-look-for-in-an-isolation-framework.html"
published: "2013-11-23T12:38:13"
updated: "2013-11-23T12:38:13"
tags: []
author: "Roy Osherove"
description: "Is the framework strict or non strict by default? Hopefully non strict. Is everything called a mock? Hopefully not. a fake? mock/stub differentiation? Does it have recursive fakes? Hopefully. How good are the error…"
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/"
---

# Fifteen things I look for in an Isolation framework

By Roy Osherove November 23, 2013

**Historical article** · Originally published November 23, 2013; technical details may be outdated.

1. Is the framework strict or non strict by default? Hopefully non strict.
2. Is everything called a mock? Hopefully not. a fake? mock/stub differentiation?
3. Does it have recursive fakes? Hopefully.
4. How good are the error messages?
5. What is the test style? record replay?arrange-assert-act? arrange-act-assert? hopefully the latter.
6. How simple are the matchers for expected parameters to write? 
7. How easily can you create a mock logger that expects a string containing X at least once?
8. How easily can you create a stub logger that simulates an exception, and a mock service that gets a message containing string if the logger throws. (\[as specified here\])
9. Is the framework constrained or unconstrained? Important to know what it can and cannot do.
10. Does stubbing a return value feel like setting an expectation? Hopefully not.
11. When you verify - can you verify only a single specific call? hopefully. or do you have to verify all?
12. Could you verify all if you wanted? hopefully not.
13. Does the framework verify by default ? hopefully not.
14. Does the framework encourage to verify all in the teardown? hopefully not.
15. How easily can you verify you got an object with some properties or attributes?

## Lessons on this topic

- [Isolation Frameworks](https://courses.osherove.com/courses/tdd-in-net-in-hebrew/isolation-frameworks/) · TDD in .NET in Hebrew
- [Isolation (Mocking) Frameworks](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/isolation-mocking-frameworks/) · The Art of Unit Testing and TDD in Java
- [Using Bogus](https://courses.osherove.com/courses/tdd-and-bdd-in-ruby/using-bogus/) · TDD and BDD in Ruby
- [Unconstrained Isolation Frameworks](https://courses.osherove.com/courses/the-art-of-unit-testing-and-tdd-in-java/unconstrained-isolation-frameworks/) · The Art of Unit Testing and TDD in Java


---

## 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/
