You ask 2 questions - about e2e tests and integration tests. :)
The e2e test, at least in the Angular world, is testing your complete application, as a real user can interact with it. This includes testing your backend request and response. However, if it works slowly and requires resources, it makes sense to switch to a smaller (or even fake) version of your backend for testing.
The integration test refers to part of your code, and the unit test refers to individual units. In both cases, some or all of the dependencies can be mocked to isolate the tests.
Thus, in all cases it is useful to use tools or mocks.
See my answer here for a more detailed discussion of the use cases, benefits and limitations of Karma and the Transporter.
Dmitri Zaitsev
source share