public async Task SayHelloWorldTest() { var action = A.Fake <ISayHelloWorldAction>(); A.CallTo(() => action.Execute("You")).Returns(new SayHelloWorldResponse { Greeting = "Hello You!" }); var actionFactory = A.Fake <IActionFactory>(); A.CallTo(() => actionFactory.CreateSayHelloWorldAction()).Returns(action); var sut = new HelloWorldController(actionFactory); var response = await sut.SayHelloWorld("You"); response.Should().NotBeNull(); var okResponse = response.As <OkObjectResult>(); okResponse.Should().NotBeNull(); okResponse.StatusCode.Should().Be((int)HttpStatusCode.OK); var content = okResponse.Value.As <SayHelloWorldResponse>(); content.Should().NotBeNull(); content.Greeting.Should().Be("Hello You!"); }