WebApi xUnit实战

发布时间 2023-09-01 15:46:15作者: 喜爱糖葫芦

提问

如何顺利开始第一个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);
    }