2017-08-03 91 views
2

我有一個dotnetcore網絡應用程序,並期待單元測試控制器。我如何解決這個問題?dotnet核心網絡應用程序單元測試控制器

我有一個簡單的控制器看起來像這樣

public class ConversionController : Controller { 
    private readonly INumberService _numberService; 

    public ConversionController(INumberService numberService) 
    { 
     this._numberService = numberService; 
    } 

    // GET http://localhost:9789/api/conversion/123 
    [HttpGet("{number}")] 
    public string Get(decimal number) 
    { 
     return _numberService.ConvertToWords(number); 
    } 
} 

INumberService傳遞作爲參數。我如何對此進行單元測試?

回答

1

通過模擬接口/依賴項並對Get方法執行單獨的單元測試。您可以創建自己的模擬或使用模擬框架來模擬依賴關係。從那裏宣稱被測系統的行爲如預期。

例如,下面的簡單測試使用Moq來模擬依賴關係,並測試Get方法。

[TestMethod] 
public void ConversionController_Get_Should_Return_Five() { 
    //Arrange 
    var number = 5; 
    var expected = "five"; 
    var mock = new Mock<INumberService>(); 
    mock.Setup(_ => _.ConvertToWords(number)).Returns(expected); 
    var sut = new ConversionController(mock.Object); 

    //Act 
    var actual = sut.Get(number); 

    //Assert 
    Assert.AreEqual(expected, actual); 
} 

你也應該花一些時間和查看文檔提供

Unit Testing in .NET Core

相關問題