Fakes are replacements for real dependencies that are good enough to fake that they are the real deal. Fakes are frequently involved in the goal of simplifying test suite dependencies or improving the performance of a test suite. For example, if your software depends on a third-party weather forecasting API available in the cloud, it's not very convenient to perform a real network connection to the remote API server. The best-case scenario is it will be very slow, and the worst-case scenario is you could get throttled or even banned for doing too many API requests in too short a time, as your test suite could easily reach hundreds or thousands of tests.
The most widespread kind of fakes are usually in-memory databases as they simplify the need to set up and tear down a real database management system for the sole reason of running your tests.
In our case, we don't want to have the need to start a chat server every time we want to run the test...