[Test] public void SayHelloWorld() { INameSource nameSource = mocks.CreateMock<INameSource>(); Expect.Call(nameSource.CreateName(null,null)).IgnoreArguments(). Do(new NameSourceDelegate(Formal)); mocks.ReplayAll(); string expected = "Hi, my name is Ayende Rahien"; string actual = new Speaker("Ayende", "Rahien", nameSource).Introduce(); Assert.AreEqual(expected, actual); } delegate string NameSourceDelegate(string first, string surname); private string Formal(string first, string surname) { return first + " " +surname; }public class Speaker { private readonly string firstName; private readonly string surname; private INameSource nameSource ; public Speaker(string firstName, string surname, INameSource nameSource) { this.firstName = firstName; this.surname = surname; this.nameSource = nameSource; } public string Introduce() { string name = nameSource.CreateName(firstName, surname); return string.Format("Hi, my name is {0}", name); } } public interface INameSource { string CreateName(string firstName, string surname); }