The Record/Replay approach is used by RhinoMocks. The basic idea is that your test execution is divided into two phases, the record and the replay fase. To be a little bit more concrete
var repo = new MockRepository();
var dependency = repo.DynamicMock<IDependency>();
With.Mocks(repo).Expecting(delegate
{
Expect.Call(dependency.AMethod(1)).Return(result);
}).Verify(delegate
{
var sut = new Sut(wrappee);
sut.DoStuffThatCallsAMethod();
Assert.IsTrue(sut.ResultState);
});
So the Expecting block is the Record phase and the Verify block is the Replay phase.
The Moq variant of this code would be
var dependency = new Mock<IDependency>();
dependency.Expect(dep => dep.AMethod(1)).Returns(result);
var sut = new Sut(wrappee.Object);
sut.DoStuffThatCallsAMethod();
Assert.IsTrue(sut.ResultState);
Which as you can see is much nicer to read. I used to use RhinoMocks but since I discovered Moq I only use Moq. I find it to be produce much more readable code. So my advice would be to go for Moq.