UT: Fake vs Stub vs Mock
Fake
Fakes are objects that have working implementations, but not same as production one. Usually they take some shortcut and have simplified version of production code.
Stub
Stub is an object that holds predefined data and uses it to answer calls during tests. It is used when we cannot or don’t want to involve objects that would answer with real data or have undesirable side effects.
Mock
Mocks are objects that register calls they receive.
In test assertion we can verify on Mocks that all expected actions were performed.
ref
https://blog.pragmatists.com/test-doubles-fakes-mocks-and-stubs-1a7491dfa3da