I guess today is get off my chest day.
I don't like mock testing. We do it at my job and I pretty much think it is worthless. Here is my problem with mock testing in a nutshell... what are you actually testing?
As far as I can tell you are testing that you can read request parameters, and then test whether the flow of the controller is correct for given parameter sets. That has some uses, but usually is not where bugs are found (b/c we usually can test these things by viewing the page).
More often than not the problems turn out to be in the middleware somewhere, down in the depths where the data is pushed through some business logic and something goes wrong. Not only are these the bulk of the problems, but they are also the hard problems to find, diagnose and fix.
Lets face it, if the controller can't to the right thing based on the parameters that is going to be pretty obvious. But if you are sorting by the wrong date down in the depths after a bunch of data massaging, well that is going to be hard.
I should mention by the way that determining that the parameters match the right flow is a good thing, but why not push the test out to a higher level, instead of mocking the objects, use real objects and check the produced html for expectations. This test buys you a lot more, it checks the flows working, but also checks your rendering. While a mock test, would only check one of these things and always takes time and maintenance to setup because YOU maintain your mock objects, while in a html unit test your controller (you know the thing you actually are trying to build!!) does the mock stuff for you.
I'll end this rant with this. If the goal of testing is to expose bugs before they get to your QA team, then mock testing is not the best use of resources.