摘要: (一)Do(delegate)有时候在测试过程中只返回一个静态的值是不够的,在这种情况下,Do()方法可以用来在方法调用时添加自定义的行为。一般来说,Do()方法会替换方法调用。它的返回值会从模拟的调用中返回(即使是有异常发生也是这样)。Do()的参数委托委托的方法的签名须和方法的签名匹配。只有当签名匹配时才能生效,且一个匹配生效一次。看官方给出的例子:[代码][代码]现在演讲者和名字分开在两个类...阅读全文
posted @ 2010-05-11 15:50 梅桦 阅读(562) | 评论 (0) 编辑
 
摘要: (一)安装结果(SetupResult)有时候在模拟对象中需要一个方法的返回值,而不在意这个方法是否被调用。就可以通过安装结果(SetupRestult)来设置返回值,而绕开期望安装,且可以使用多次。从依赖的角度来说是这样的:方法a(或属性)被方法b使用,而在其它的位置c处方法a又会被使用,而在c处使用之前,不保证是否在b处使用且修改了方法a的返回值。意思就是保证方法a的返回结果是固定的,是忽略它...阅读全文
posted @ 2010-05-11 11:17 梅桦 阅读(649) | 评论 (0) 编辑
 
摘要: (一)属性Property属性也是一种方法。所以对于属性的期望,和方法是一样的。方法和属性的期望在前几篇随笔中已经大量使用。通常的读或写属性器的期望[代码]这个是很简单的。然后还有一种自动属性期望的,设置属性行为来达到自动属性期望安装。这个有两种方式,在前边说Mock四种类型时说过:一是传统的一个一个的安装,还有一种方式就是通过Stub方式实现。[代码]这个接口有3个属性。[代码]通过这种方法要分...阅读全文
posted @ 2010-05-10 17:21 梅桦 阅读(791) | 评论 (0) 编辑
 
摘要: (一)次序(Ordered)在rhinomock中,可以按次序调用方法。默认条件下,方法调用没有顺序。如果按次序录制,那么在调用方法时必须按录制时相同的次序进行。请看:[代码]测试:[代码]当使用次序时:[代码]这时,如果调用时没有按期望时的次序进行,那就会出错,抛出异常。这种次序可以灵活使用,例如可以次序一个mock,然后期望条件达到后,再不按次序进行。注意:在进行回播前要退出次序。(二)模拟委...阅读全文
posted @ 2010-05-10 15:16 梅桦 阅读(749) | 评论 (0) 编辑
 
摘要: MockRespository有四种泛型方法:·CreateMock<T>·CreateDynamicMock<T>·PartialMock·Stub在3.5中,三种已经过时的方法分别由以下方法替代:·StrictMock<T>·DynamicMock<T>·PartialMock...阅读全文
posted @ 2010-05-10 11:15 梅桦 阅读(1459) | 评论 (1) 编辑
 
摘要: 这里介绍RhinoMock中的常用的类。(一)MockRepositoryRhinoMock的主要的类,是Mock仓库,用于创建mock对象,录制,重放,验证等。(1)创建Mock[代码](2)创建mock对象Mock的目的就是创建mock对象,然后期望,录制重放等。创建mock对象有很多方法,以前的版本中通过:[代码]来进行,CreateMock方法已经过时,工厂方法来进行:[代码]也可以通过静...阅读全文
posted @ 2010-05-08 12:57 梅桦 阅读(1694) | 评论 (1) 编辑
 
摘要: RhinoMock用来模拟对象,安装期望然后测试。3.5版本支持Lambda和.net3.X扩展。下载地址:http://www.ayende.com/projects/rhino-mocks/downloads.aspxrhinomock可以很容易的创建模拟对象。然后通过对其它安装期望然后可以测试相关的业务。mock测试通过强类型标记代替字符串。阅读全文
posted @ 2010-05-08 12:55 梅桦 阅读(1253) | 评论 (1) 编辑
 
摘要: Mock<T> Class定义为:public class Mock<T> : Mock where T : class这的构造方法:Mock<T>()Mock<T>(MockBehavior)Mock<T>(array<Object>[])Mock<T>(MockBehavior, array<Object...阅读全文
posted @ 2010-03-03 11:02 梅桦 阅读(1085) | 评论 (0) 编辑
 
摘要: (一)属性(1)测试准备:public class Customer{public virtual int Unid { get; set; }public virtual string Name { get; set; }}测试var customer = new Mock<Customer>();customer.Setup(p => p.Name).Returns("Tom...阅读全文
posted @ 2010-03-02 15:50 梅桦 阅读(1105) | 评论 (0) 编辑
 
摘要: Moq,就是Mock you。读音可以读成Mock~you。是Mock框架的一种。用于测试中的Mock测试。Mock是模拟的意思。Mock是模拟对象的一种技术。它可以用于以下情况(引用):----- 真实对象具有不可确定的行为(产生不可预测的结果,如股票的行情)----- 真实对象很难被创建(比如具体的web容器)----- 真实对象的某些行为很难触发(比如网络错误)----- 真实情况令程序的运...阅读全文
posted @ 2010-03-02 10:01 梅桦 阅读(1928) | 评论 (3) 编辑
 
摘要: 准备工作:public interface ICustomer{ }(一)方法(1)普通的方法在接口中添加3个方法:void AddCall();string GetCall();string GetCall(string strUser);Mock测试:var customer = new Mock<ICustomer>();customer.Setup(p=>p.AddCal...阅读全文
posted @ 2010-03-02 09:47 梅桦 阅读(1501) | 评论 (0) 编辑
 
摘要: 概述在测试框架中,断言是单元测试的核心,我们在测试中要对其程序断言,如果某个断言失败,方法的调用不会返回值,并且会报告一个错误。如果一个测试包含多个断言,那些紧跟失败断言的那些断言都不会执行,因此每个测试方法最好只有一个断言。 下面看看NUnit框架吧,来2张图:断言现在,我们使用经典的NUnit框架的最新版本,可以用三种方法来写我们的断言:标准模式:过去比较经典的写法。这些方法在NUnit.Fr...阅读全文
posted @ 2009-11-05 14:38 梅桦 阅读(483) | 评论 (0) 编辑
 
摘要: 属性TestDriven.NET支持多种单元测试框架,像NUnit,MbUnit,MS Team System,这里我选择了最为经典的NUnit单元测试框架来介绍TestDriven.NET所支持的一些重要的属性。TestDriven.NET其实已经支持大部分NUnit的属性,但是有些属性现在还不支持。在我们使用TestDriven.NET测试前,项目必须引用框架的程序集,即nunit.frame...阅读全文
posted @ 2009-11-05 14:37 梅桦 阅读(203) | 评论 (0) 编辑
 
摘要: 直接转过来了,方便阅读推荐测试工具在.NET下的单元测试工具非常多了,其中微软也提供了自己的测试的Unit Test Framework,我在这里仅仅推荐一下比较实用的两种测试工具。Visual Studio Test Edition利用Visual Studio Test Edition,我们可以直接在Visual Studio中创建、管理、编辑和运行测试,还可以获取和存储测试结果。Visual...阅读全文
posted @ 2009-11-05 14:36 梅桦 阅读(303) | 评论 (0) 编辑
 
摘要: 1. TDD的简介 首先什么是TDD呢?Kent Beck在他的<<测试驱动开发 >>(Addison-Wesley Professional,2003)一书中,使用下面2个原则来定义TDD: · 除非你有一个失败的自动测试,永远不要写一单行代码. · 阻止重复 我想第一个原则是显而易见的.在没有失败的自动测试下就不要写代码.因为测试是嵌入在代码必须满...阅读全文
posted @ 2009-11-05 14:26 梅桦 阅读(148) | 评论 (0) 编辑
 
摘要: 在软件开发领域,测试驱动开发(Test Driven Development,TDD)技术在逐渐为广大开发者所接受,它是在添加新代码之前让你的测试代码出错的一种开发技术。在开始编写代码之前首先要写你的测试代码,然后再编写代码让你的测试通过,可以想象,如果没有一个好的单元测试工具,这项工作其实是无法完成的。相信很多.NET开发人员者对于开源的NUnit都不陌生,但是它并不能很好的与Visual St...阅读全文
posted @ 2009-11-05 11:53 梅桦 阅读(222) | 评论 (0) 编辑

Moq 测试 属性,常用方法的更多相关文章

  1. 使用 Moq 测试.NET Core 应用

    第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 第二篇文章, 关于方法Mock的介绍: https://www.cnbl ...

  2. 深入了解VSTS的Unit Test测试属性

    深入的了解一下方法上带有的属性的含义.每个方法上几乎都带有TestMethod这个属性,我们直觉告诉我们,这肯定是表示被测试函数的意思.事实也正是如此,在Unit Test里,有许多测试属性,常用的如 ...

  3. 使用 Moq 测试.NET Core 应用 -- Mock 属性

    第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 第二篇文章, 关于方法Mock的介绍: https://www.cnbl ...

  4. 使用 Moq 测试.NET Core 应用 - Why Moq?

    什么是Mock 当对代码进行测试的时候, 我们经常需要用到一些模拟(mock)技术. 绿色的是需要被测试的类, 黄色是它的依赖项, 灰色的无关的类 在一个项目里, 我们经常需要把某一部分程序独立出来以 ...

  5. 使用 Moq 测试.NET Core 应用 -- Mock 方法

    第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 本文介绍使用Moq来Mock方法. 使用的代码: https://git ...

  6. 使用 Moq 测试.NET Core 应用 -- Mock 行为

    第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 第二篇文章, 关于方法Mock的介绍: https://www.cnbl ...

  7. 使用 Moq 测试.NET Core 应用 -- 其它

    第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 第二篇文章, 关于方法Mock的介绍: https://www.cnbl ...

  8. yii DbCriteria相关属性常用方法

    $criteria = new CDbCriteria; //函数方式 $criteria->addCondition("id=1"); //查询条件,即where id = ...

  9. .net测试篇之测试神器Autofixture在几个复杂场景下的使用示例以及与Moq结合

    系列目录 为String指定一个值. 在第三节里我们讲了如何使用自定义配置加上一个自定义算法生成一个自定义字符串,然而有些时候我们仅仅是需要某个字段是有意义的,这个时候随便生成的字符串也满足不了我们的 ...

随机推荐

  1. web富客户端应用下,前端架构、系列(二)。

    序 我们在上面的文章中已经建立起来一个比较简单的 前端架构 虽然这个看上去很简陋. 不过毕竟也是思想的结晶. 从这一篇文章开始,我将陆续完善这一个前端架构.. 重新构思 上一篇我们把前端架构分为3个模 ...

  2. 划分数 (DP)

    输入: n=4 m=3 M=10000 输出: 4 (1+1+2=1+3=2+2=4) 复杂度(nm) int n,m; int a[MAX]; int dp[MAX][MAX]; //数组 void ...

  3. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(12)-实现用户异步登录和T4模板 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建  ...

  4. XSS学习笔记(五)-XSS防御

    如果只生产XSS的地方都与输入或输出相关联的.所以错过了主要矛盾.而且,我们将有一个解决问题的办法:您可以输入端砚格过滤,是可能的过滤输出时间,输出到用户的GET或POST中是否有敏感字符: 输入过滤 ...

  5. error:stray&#39;\243&#39;in program

    error:stray'\243'in program 问题:       C原因在编译时出现例如以下错误 error:stray'\243'in program 错误原因: 非 - 标准ascII字 ...

  6. NDMCDB数据库hang住故障分析 - cursor: pin S wait on X

    问题描写叙述: 上午刚刚到办公室,就有监控人员邮件反馈,昨晚NDMCDB407数据库被重新启动过,让我分析一下数据库重新启动的原因.因为昨晚业务有版本号上线,所以短信警告关闭了,所以没有短信下发到我手 ...

  7. update与fixedupdate差别

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网--Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=307 今天有人问我问什么我在处 ...

  8. linux虚拟文件系统2

    转自:http://rstevens.iteye.com/blog/849413 一.概述 Linux 文件系统是相当复杂的,本文只分析虚拟文件系统的实现,对具体的文件系统不涉及. 即使是虚拟文件系统 ...

  9. UVa 11121 - Base -2

    题目:计算以-2为基数的数的表示. 分析:数论.写出不同位数能表示的数字区间就能够找到规律. 长度为1:[1,1]: 长度为2:[-2,-1]: 长度为3:[2,5]: 观察发现,区间长度增长为1,2 ...

  10. RF1001: 各浏览器对 '@font-face' 规则支持的字体格式不同,IE 支持 EOT 字体,Firefox Safari Opera 支持 TrueType 等字体

    http://w3help.org/zh-cn/causes/RF1001 http://blog.csdn.net/agileclipse/article/details/12450949 http ...