From: https://medium.com/@matiasglessi/mock-stub-spy-and-other-test-doubles-a1869265ac47
- Dummy: It is the simplest of all. They are objects that are passed from one place to another but are not used. They usually exist for the sole purpose of completing parameters or satisfying dependencies.
- Stub: Stubs are objects that provide predefined responses. They are usually used to define a specific type of response expected from the object/dependency that is being simulated.
- Spy: Spy objects are those that, in addition to being Stubs (that is, they return the desired predefined information) also record data on how they were called in some way.
- Mock: Mocks are objects that record the calls they receive and analyze the behavior. When we are in the verification part of the test, we can check that all the expected actions were carried out.
- Fake: Fake objects are those that have working implementations, but usually have some shortcut or structure that makes them unfeasible for production use.