单元测试 - Moq

发布时间 2023-07-08 19:10:41作者: 【唐】三三

Mock接口

而由于Moq对依赖项进行了包装, 所以要获得实际的mock依赖项, 我们需要使用mockExamination.Object属性. 而这个属性的类型就是IPhysicalExamination.

Mock<IPhysicalExamination> mockExamination = new Mock<IPhysicalExamination>();

var approval = new TransferApproval(mockExamination.Object);

It类

这里用到了It这个类, 在Moq里, It这个类是用来做参数匹配的, it 就是"它"的意思, 它就代表需要被匹配的参数.

It.IsAny<T>(), 它表示传递给方法的参数的类型只要是T就可以, 值是任意的. 只要满足了这个条件, 那么方法的返回值就是后边Returns()方法里设定的值.

mockExamination.Setup(x => x.IsHealthy(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<int>())).Returns(true);

参考

使用 Moq 测试.NET Core 应用 - Why Moq? - yangxu-pro - 博客园