Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public interface ITestService {
- string GetString(string testString);
- }
- public class TestModel {
- string testValue { get; set; }
- }
- public class TestController : Controller
- {
- readonly ITestService testService;
- public TestController() {
- }
- public TestController(ITestService _testService) {
- testService = _testService;
- }
- [HttpPost]
- public async Task<IActionResult> Post([FromBody]TestModel testModel)
- {
- string test = GetString("testNew");
- await Task.Run(() => "test");
- return Ok(test);
- }
- protected virtual string GetString(string testString)
- {
- return "test" + testString;
- }
- }
- public class TestControllerTest
- {
- private Mock<ITestService> MockTestService { get; }
- TestController controller { get; }
- public TestControllerTest()
- {
- MockTestService = new Mock<ITestService>();
- controller = new TestController(MockTestService.Object);
- }
- [Fact]
- public void Post_TakesTestString_ReturnsString()
- {
- var MockController = new Mock<TestController>(MockTestService.Object);
- MockController.Protected().Setup<string>("GetString", ItExpr.IsAny<string>()).Returns("testMockValue").Verifiable();
- var result = MockController.Object.Post(new TestModel() { }).Result;
- // result returns NULL value
- MockController.Protected().Verify("GetString", Times.Once(), ItExpr.IsAny<string>());
- }
- }
- var result = MockController.Object.Post(new TestModel() { }).Result;
- public class TestControllerTest {
- [Fact]
- public async Task Post_TakesTestString_ReturnsString() {
- //Arrange
- var MockTestService = new Mock<ITestService>();
- var MockController = new Mock<TestController>(MockTestService.Object) {
- CallBase = true //<--
- };
- MockController.Protected().Setup<string>("GetString", ItExpr.IsAny<string>()).Returns("testMockValue").Verifiable();
- TestController controller = MockController.Object;
- //Act
- var result = await controller.Post(new TestModel() { });
- //Assert
- MockController.Protected().Verify("GetString", Times.Once(), ItExpr.IsAny<string>());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement