Test doubles is a technique in which you replace the real object by pretend object, or a real method by pretend method or just pre-define the return data and function arguments for a method to ease the testing purpose. In real world, our application may has various components which requires to connect different databases, APIs, and other services, which cannot be used