单元测试 – 模拟对象 – 设置方法 – 测试驱动开发

前端之家收集整理的这篇文章主要介绍了单元测试 – 模拟对象 – 设置方法 – 测试驱动开发前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在学习测试驱动开发,并试图使用Moq库进行嘲笑。 Mock类的安装方法的目的是什么?
Moq Mock对象的默认行为是存放所有方法属性。这意味着使用任何参数调用方法/属性不会失败,并返回特定返回类型的默认值。

由于以下任何或全部原因,您可以调用安装方法

>你想限制输入值到方法

public interface ICalculator {
  int Sum(int val1,val2);
}

var mock = new Mock<ICalculator>();
mock.Setup(m=>m.Sum(
  It.IsAny<int>(),//Any value
  3                //value of 3
));

上述设置将匹配对方法Sum的调用,val1和val2的值为3的任何值。

>你想要返回一个特定的值。继续使用ICalculator示例,无论输入参数如何,以下设置都将返回值为10:

var mock = new Mock<ICalculator>();
mock.Setup(m=>m.Sum(
  It.IsAny<int>(),//Any value
  It.IsAny<int>()  //Any value
)).Returns(10);

>您设置后要使用Mock< T> .VerifyAll()来验证所有以前的设置是否已被调用(一次)。

var mock = new Mock<ICalculator>();
mock.Setup(m=>m.Sum(
  7,//value of 7
  3                //value of 3
));

mock.Setup(m=>m.Sum(
  5,//value of 5
  3                //value of 3
));

mock.VerifyAll();

上面的代码验证了Sum被调用了两次。一次(7,3)和一次(5,3)。

猜你在找的设计模式相关文章