博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSubstitute完全手册(三)设置返回值
阅读量:6326 次
发布时间:2019-06-22

本文共 1497 字,大约阅读时间需要 4 分钟。

下面的示例中将涉及替代下面的接口定义:

1     public interface ICalculator2     {3       int Add(int a, int b);4       string Mode { get; set; }5     }

为方法设置返回值

要为替代实例上的一个方法调用设置返回值,可以按正常调用该方法,然后紧跟着一个 NSubstitute 的 Returns() 扩展方法。

1     [TestMethod]2     public void Test_SettingReturnValue_ReturnsValueWithSpecifiedArguments()3     {4       var calculator = Substitute.For
();5 calculator.Add(1, 2).Returns(3);6 Assert.AreEqual(calculator.Add(1, 2), 3);7 }

该方法在每次被调用时都会返回这个值。Returns() 仅会被应用于指定的参数组合,任何使用其他参数组合对该方法的调用将会返回一个默认值。

1     [TestMethod] 2     public void Test_SettingReturnValue_ReturnsDefaultValueWithDifferentArguments() 3     { 4       var calculator = Substitute.For
(); 5 6 // 设置调用返回值为3 7 calculator.Add(1, 2).Returns(3); 8 9 Assert.AreEqual(calculator.Add(1, 2), 3);10 Assert.AreEqual(calculator.Add(1, 2), 3);11 12 // 当使用不同参数调用时,返回值不是313 Assert.AreNotEqual(calculator.Add(3, 6), 3);14 }

为属性设置返回值

为属性设置返回值的方式与为方法设置是一样的,仍然使用 Returns() 语法。对于可读写属性,可以使用传统的属性 setter 进行设置,当然结果就像你期待的那样。

1     [TestMethod] 2     public void Test_SettingReturnValue_ReturnsValueFromProperty() 3     { 4       var calculator = Substitute.For
(); 5 6 calculator.Mode.Returns("DEC"); 7 Assert.AreEqual(calculator.Mode, "DEC"); 8 9 calculator.Mode = "HEX";10 Assert.AreEqual(calculator.Mode, "HEX");11 }

更多的设置返回值的方式

本篇介绍了设置返回值的基本方式,但 NSubstitute 提供更多的功能。如果想了解其他方式,例如、、、等,请继续阅读。

NSubstitute 完全手册

转载地址:http://tugaa.baihongyu.com/

你可能感兴趣的文章
C# async
查看>>
C语言博客作业02--循环结构
查看>>
图片时钟
查看>>
Unity-2017.3官方实例教程Space-Shooter(一)
查看>>
makefile中重载与取消隐藏规则示例
查看>>
Linux 内核版本号查看
查看>>
4-3 简单求和 (10分)
查看>>
Python环境部署
查看>>
[BZOJ1927]星际竞速(费用流)
查看>>
PowerDesigner添加表注释
查看>>
使用VMware安装Ubuntu虚拟机,创建后开启显示黑屏的解决方法
查看>>
Java数据结构与算法(11) - ch06递归(二分法查找)
查看>>
文件操作
查看>>
this的指向
查看>>
Object类及其常用方法简介
查看>>
VMware安装CentOS7后无法使用yum
查看>>
如何查看oracle用户具有的权限和角色
查看>>
Hibernate关联关系配置(一对多、一对一和多对多)
查看>>
微信小程序直播,腾讯云直播+微信小程序实现实时直播
查看>>
ThinkPHP与EasyUI整合之三(searchbox):在datagrid中查询指定记录
查看>>