Also getting the right kind of response out of a back end server may be hard, eg getting certain kinds of error or unusual responses, so mocking is the only way to get them reliably.
They are not a substitute for end to end tests though, as you cannot tell if some other assumption is broken.
They are not a substitute for end to end tests though, as you cannot tell if some other assumption is broken.