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

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