NSubstitute完全手册(七)设置多个返回值

简介:

也可以配置在多次调用中分别返回不同的值。下面的示例通过调用属性来演示此功能,对于方法的调用是相同的。

复制代码
 1     public interface ICalculator
 2     {
 3       int Add(int a, int b);
 4       string Mode { get; set; }
 5     }
 6 
 7     [TestMethod]
 8     public void Test_MultipleReturnValues_ReturnMultipleValues()
 9     {
10       var calculator = Substitute.For<ICalculator>();
11 
12       calculator.Mode.Returns("DEC", "HEX", "BIN");
13       Assert.AreEqual("DEC", calculator.Mode);
14       Assert.AreEqual("HEX", calculator.Mode);
15       Assert.AreEqual("BIN", calculator.Mode);
16     }
复制代码

当然,这种方式也可以通过使用函数返回结果的方式来完成,但传递多个值到 Returns() 看起来更加简单,可读性更好。

使用回调来返回多个值

Returns() 也支持传递多个 创建返回结果的函数,这允许在一系列的调用或者抛异常,或者执行一些动作。
复制代码
 1     [TestMethod]
 2     [ExpectedException(typeof(Exception))]
 3     public void Test_MultipleReturnValues_UsingCallbacks()
 4     {
 5       var calculator = Substitute.For<ICalculator>();
 6 
 7       calculator.Mode.Returns(x => "DEC", x => "HEX", x => { throw new Exception(); });
 8       Assert.AreEqual("DEC", calculator.Mode);
 9       Assert.AreEqual("HEX", calculator.Mode);
10       var result = calculator.Mode;
11     }
复制代码

NSubstitute 完全手册






本文转自匠心十年博客园博客,原文链接:http://www.cnblogs.com/gaochundong/archive/2013/05/21/nsubstitute_multiple_return_values.html,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
存储 算法 程序员
【C++20 新特性 】模板参数包展开与Lambda初始化捕获详解
【C++20 新特性 】模板参数包展开与Lambda初始化捕获详解
311 3
|
缓存 Windows
Windows程序设计——LoadImage参数及其用法
Windows程序设计——LoadImage参数及其用法
499 0
|
缓存 前端开发 Swift
Swift实用小册06:函数的定义、参数、返回、调用
Swift实用小册06:函数的定义、参数、返回、调用
234 0
Swift实用小册06:函数的定义、参数、返回、调用
|
PHP C#
C#(十四)之函数(方法)
本篇内容记录了函数、函数的参数、参数匹配、递归函数。
150 0
C#(十四)之函数(方法)
|
安全 Windows 缓存
CreateFile函数使用方法详细介绍
CreateFileThe CreateFile function creates or opens the following objects and returns a handle that can be used to accessthe object:filespipesmailslotscommunications resourcesdisk devices(Windows NT only)consolesdirectories(open only) CreateFile 函数创建或打开下列对象,并返回一个能够用来訪问这些对象的句柄。
2073 0
下一篇
无影云桌面