Model: 5 kinds of test doubles
September 2nd, 2022
"
The vocabulary for talking about this soon gets messy - all sorts of words are used: stub, mock, fake, dummy.
"
Test Double
the generic term for any kind of pretend object used in place of a real object for testing purposes.
five particular kinds of double
(1) Dummy objects
passed around but never actually used.
eg. fill parameter lists
(2) Fake objects
working implementations
shortcut which makes them not suitable for production
eg. in memory database
(3) Stubs
provide canned answers to calls made during the test
Does not respond to anything outside what's programmed in for the test.
(4) Spies
stubs that also record some information based on how they were called.
eg. email service that records how many messages it was sent
(5) Mocks
objects pre-programmed with the calls they are expected to receive
only mocks insist upon behavior verification. The other doubles can, and usually do, use state verification.
(src: Article: Mocks Aren't Stubs - Martin Fowler)
(ref: TestDouble)