#readwise
# From Test Data Builders to the Identity Functor

## Metadata
- Author: [[Mark Seemann]]
- Full Title: From Test Data Builders to the Identity Functor
- URL: https://blog.ploeh.dk/2017/08/14/from-test-data-builders-to-the-identity-functor/
## Summary
**From Test Data Builders to the Identity Functor is a blog series that introduces the concept of a test data builder.** Here's a list of included articles, retrieved on March 22, 2023:
- [[Test Data Builders in CSharp|Test Data Builders in C#]]
- [Generalised Test Data Builder](https://blog.ploeh.dk/2017/08/21/generalised-test-data-builder)
- [The Builder functor](https://blog.ploeh.dk/2017/08/28/the-builder-functor)
- [[Builder as Identity]]
- [Test data without Builders](https://blog.ploeh.dk/2017/09/11/test-data-without-builders)
## Highlights
The [Test Data Builder](http://www.natpryce.com/articles/000714.html) design pattern is a valuable technique for managing data for unit testing. It enables you to express test cases in such a way that the important parts of the test case stands out in your code, while the unimportant parts disappear. It perfectly fits [Robert C. Martin's definition](http://amzn.to/19W4JHk) of an *abstraction:*
> "Abstraction is the elimination of the irrelevant and the amplification of the essential" ([View Highlight](https://read.readwise.io/read/01gw465ej427zyrk4ms41hkhjq))
---
They're also eminently composable. You can use fine-grained Test Data Builders as building blocks for more complex Test Data Builders. This turns out to be more than a coincidence. In this series of articles, you'll learn how **Test Data Builders are closely related to the *identity functor*.** ([View Highlight](https://read.readwise.io/read/01gw46600gx3s7k7yq6wvp0727))
---