Fake objects

If we think of the interdependencies between objects in an application as a graph, it becomes quickly apparent that there are a number of nodes that have dependencies on not just one but many other objects. Attempting to place an object with a lot of dependencies under a test is challenging. Each of the dependent objects must be constructed and included in the test. When these dependencies interact with external resources such as the network or filesystem, the problem becomes intractable. Pretty soon we're testing the entire system at a time. This is a legitimate testing strategy, known as integration testing, but we're really just interested in ensuring that the functionality of a single class is correct. Integration testing tends ...

Get Mastering JavaScript Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.