NSubstitute 是什么?

NSubstitute 是一个 .NET 单元测试模拟类库。

一直以来,开发者对 mocking 类库的语法的简洁性有强烈的需求,NSubstitute 试图满足这一需求。简单明了的语法可以让我们将重心放在测试本身,而不是纠缠在测试替代实例的创建和配置上。NSubstitute 已尝试将最常用的操作需求简单化、易用化,并支持一些不常用的或探索性的功能,与此同时还尽可能地将其语法向自然语言靠近。

NSubstitute 是为 Arrange-Act-Assert (AAA) 模式的测试进行设计的,所以你仅需 Arrange 测试应该怎样工作,然后 Assert 是否接收到你期待的调用和参数。因此你会将重点放到测试内容上,而不是在考虑是否需要编写一个 mock 或 stub。具体内容请阅读原文。

NSubstitute 完全手册

  • (一)入门基础

  • (二)创建替代实例

  • (三)设置返回值

  • (四)为特定参数设置返回值

  • (五)为任意参数设置返回值

  • (六)使用函数设置返回值

  • (七)设置多个返回值

  • (八)替换返回值

  • (九)检查接收到的调用

  • (十)清理已收到的调用

  • (十一)参数匹配器

  • (十二)使用回调函数和WhenDo语法

  • (十三)抛出异常

  • (十四)引发事件

  • (十五)自动递归模拟

  • (十六)设置out和ref参数

  • (十七)参数匹配器上的操作

  • (十八)检查调用顺序

单元测试代码

  • 源代码位置


原文地址:http://www.cnblogs.com/gaochundong/archive/2013/05/22/nsubstitute_manual.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

NSubstitute完全手册索引相关推荐

  1. NSubstitute完全手册(二)创建替代实例

    创建一个替代实例的基本语法: var substitute = Substitute.For<ISomeInterface>(); 这就是通常情况下你创建一个类型的替代实例的方法.一般来说 ...

  2. NSubstitute完全手册(八)替换返回值

    如果需要的话,一个方法或属性的返回值可以被设置多次.只有最后一次设置的值将被返回. 1 public interface ICalculator 2 { 3 int Add(int a, int b) ...

  3. NSubstitute完全手册(一)入门基础

    NSubstitute入门 最简单的入门方式就是创建一个测试项目,并将 NSubstitute 引用到其中.可以通过 NuGet 或 OpenWrap 来获取 NSubstitute 包.也可以直接下 ...

  4. SQLite学习手册(索引和数据分析/清理)

    一.创建索引: 在SQLite中,创建索引的SQL语法和其他大多数关系型数据库基本相同,因为这里也仅仅是给出示例用法:     sqlite> CREATE TABLE testtable (f ...

  5. mysql srid_mysql8 参考手册--索引优化

    主键优化 表的主键表示您在最重要的查询中使用的一列或一组列.它具有关联的索引,可提高查询性能.查询性能可以从NOT NULL优化中受益,因为它不能包含任何NULL值.使用InnoDB存储引擎,可以对表 ...

  6. SQLite学习手册(索引和数据分析/清理)-转

    一.创建索引: 在SQLite中,创建索引的SQL语法和其他大多数关系型数据库基本相同,因为这里也仅仅是给出示例用法:     sqlite> CREATE TABLE testtable (f ...

  7. 代码的印象派:写点好代码吧

    最近有一位猎头顾问打电话询问是否有换工作的意向,对推荐的公司和职位的描述为:"我们这里有一家非常关注软件质量的公司,在寻找一位不仅能完成有挑战的软件开发任务,并且还对代码质量有非常高追求的软 ...

  8. .NET Core系列 :4 测试

    2016.6.27 微软已经正式发布了.NET Core 1.0 RTM,但是工具链还是预览版,同样的大量的开源测试库也都是至少发布了Alpha测试版支持.NET Core, 这篇文章 The Sta ...

  9. mysql 织梦 索引_Mysql索引详解 建立索引的优势劣势以及索引规范

    索引是什么 索引(index)是帮助MySQL高效获取数据的数据结构 如果没有特别指明,都是指的是B树索引(多路搜索树,并不一定是二叉树)结构组织的索引 建立索引的优势和劣势 优势 提高数据检索的效率 ...

最新文章

  1. 《深入理解Java虚拟机》(第二版)学习3:垃圾收集器
  2. 使用NDK开发SQLite3
  3. 共享资源的保护:锁机制
  4. 中国矿山机械行业运行现状与投资战略规划报告2022版
  5. swing退出子窗口事件_如何创建有效的退出弹出窗口?
  6. 要不要赶个时髦,去建设一个「 中台 」?
  7. Centos7 解决Docker拉取镜像慢的问题
  8. HDU 5586 Sum (预处理 + 动态规划)
  9. Win7 开启远程桌面
  10. 如何看注解的源码_我们为什么要看源码、应该如何看源码?
  11. 使用$.getJSON解决ajax跨域访问 JQuery 的跨域方法(服务器端为wordpress程序)
  12. 品牌类软文经典案例分享,深刻了解软文营销的“魅力”
  13. linux命令行格式简介
  14. itunes未能连接到iphone软件更新服务器,iTunes无法联系iphone软件更新服务器 不可连接解决方法...
  15. postgresql源码学习(十三)—— 行锁①-行锁模式与xmax
  16. spring2.5.6升级到4.3.7常见问题
  17. 2022-06-25 网工进阶(十一)IS-IS-三大表(邻居表、路由表、链路状态数据库表)、LSP、CSNP、PSNP、LSP的同步过程
  18. SSM+小程序知识点,防入坑!!!
  19. 快速上手MyBatis-Plus
  20. 中国科学技术大学华夏计算机英才班,中国科学技术大学:让本科生100%自主选择专业,看他们的成功案例...

热门文章

  1. Bootstrap在线编辑器简单分享
  2. GridView实现数据编辑和删除(一)
  3. WPF DataGrid 如何将被选中行带到视野中
  4. MAUI中Maui.Graphics.Controls绘制控件
  5. Hello Blazor:(7)WebAssembly、Server模式你选哪种?小孩子才做选择!我用混合模式...
  6. MongoDB,凉凉?
  7. 93.7%的程序员!竟然都不知道Redis为什么默认16个数据库?
  8. 多款主流编程语言,哪款开发软件最安全?
  9. 使用Jenkins来发布和代理.NetCore项目
  10. Azure DevOps Server CI - 自搭跨平台容器代理Agents