// Creating a fake object is just dead easy! // No mocks, no stubs, everything's a fake! var lollipop = A.Fake<ICandy>(); var shop = A.Fake<ICandyShop>(); // Easily set up a call to return a value A.CallTo(() => shop.GetTopSellingCandy()).Returns(lollipop); // Use your fake as you would an instance of the faked type. var developer = new SweetTooth(); developer.BuyTastiestCandy(shop); // Asserting uses the same syntax as configuring calls. // There's no need to learn another syntax. A.CallTo(() => shop.BuyCandy(lollipop)).MustHaveHappened();