#readwise # From Test Data Builders to the Identity Functor ![rw-book-cover](https://blog.ploeh.dk/assets/themes/ploeh/images/favicons/favicon.png) ## 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)) ---