WebApi xUnit實戰

提問

如何順利開始第一個xUnit,有哪些點需要注意

回答

  1. Mock的接口,假如是類則方法爲Vitual;
  2. Mock類注意構造函數的Mock,不要只Mock無參的;
  3. WebAPI獲取Action的值需要通過as轉換as OkObjectResult;
  4. 無關聯的直接傳null;

示例

[Fact]
    public void GetBayByDeviceIdTest()
    {
        //Arrange 
        var id = Guid.NewGuid();
        var bayApplication = new Mock<BayApplication>(null, null);
        bayApplication.Setup(x => x.GetBayByDeviceId(id))
            .Returns(new Bay { Id = id });
        var controller = new DevicesController(null, null,null, bayApplication.Object, null);

        //Act
        var actual = controller.GetBayByDeviceId(id);
        var o = actual as OkObjectResult;
        var v = o.Value;

        // Assert
        Assert.IsType(typeof(Bay), v);
        Assert.Equal(id, (v as Bay).Id);
    }

參考

https://learn.microsoft.com/zh-cn/dotnet/core/testing/unit-testing-best-practices

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章