This post is quite old, but I want to share my experiencewas experiencing a similar question - which basically was the same as yours, until until I discovered the power of component tests. In short, they are the same as unit tests except that you don't mock by default but use real objects (ideally via dependency injection).
That way, you can quickly create robust tests with a good code coverage. No need for updating your mocks all the time. It might be a bit less precise than unit tests with 100% mocks, but the time and money you save compensate for that. The only thing you really need to use mocks or fixtures for are storage backends or external services.
Actually, excessive mocking is an anti-pattern: http://blog.james-carr.org/2006/11/03/tdd-antiTDD Anti-patterns/Patterns
See also: and https://lastzero.net/2015/11/mocks-are-evil/Mocks are evil.