So here's something we started preliminary work on.
Let's say you already have an integration test. This integration test works, it calls the database, a service or any other thing, that replies with results. The test passes, and now you want to create an isolated unit test.
With the current toolset, you start from writing the same code in the test, but then you start working backwards. You run the test, it fails, you add a faking statement. You run the test again, but then it brings a wrong result from your database, so you add a statement to return a fake result, and this is an iterative process. You continue until the test passes, and it can take a lot of time until it works.We want to make it shorter, by a lot.
What we plan to do is record the integration test. By record I mean run it in a certain context (I imagine doing a right click on the integration test, "Generate unit test from this", but it can be in another way) and recording all external calls (which we currently defined as outside of the code-under-test assembly) and what they return. Then we generate code for the faking statements (or the entire unit test code).
We've just started working on that and I'll keep you posted on how we're proceeding. It's one of the ease-of-use features we're thinking of, and in advanced stages can be done just from running your app. I'll be happy to hear what you think.