2017-08-03 2 views
2

Ich habe eine dotnetcore Web App und freue mich auf Unit-Test der Controller. Wie komme ich dazu?dotnet core web app einheit test controller

Ich habe eine einfache Steuerung, die wie folgt

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); 
    } 
} 

Die INumberService wird übergeben als Parameter aussieht. Wie teste ich das Gerät?

Antwort

1

Durch Mocking der Schnittstelle/Abhängigkeit und Ausübung einer isolierten Einheit Test für die Get-Methode. Sie könnten entweder Ihren eigenen Spott erstellen oder einen spöttischen Rahmen verwenden, um sich über die Abhängigkeit lustig zu machen. Von dort behaupten, dass das zu testende System sich wie erwartet verhält.

Zum Beispiel verwendet der folgende einfache Test Moq, um die Abhängigkeit zu verspotten und die Get Methode zu testen.

[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); 
} 

Sie sollten auch einige Zeit in Anspruch nehmen und prüfen Sie die Dokumentation

Unit Testing in .NET Core

Verwandte Themen