摘要: (一)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. 【Socket规划】套接字Windows台C语言

    [编译环境]:Visual Studio 2013 这是服务端实现流程. #include<stdio.h> #include<stdlib.h> #include<wi ...

  2. hdu 1700 Points on Cycle 水几何

    已知圆心(0,0)圆周上的一点,求圆周上另外两点使得三点构成等边三角形. 懒得推公式,直接用模板2圆(r1=dist,r2=sqrt(3)*dist)相交水过 #include<cstdio&g ...

  3. shell 命名管道,进程间通信

    命名管道基础 命名管道也被称为FIFO文件, 在文件系统中是可见的,并且跟其它文件一样可以读写! 命名管道特点: 当写进程向管道中写数据的时候,如果没有进程读取这些数据,写进程会堵塞 当读取管道中的数 ...

  4. 【Linux】Vim编辑器-批量注释与反注释

    [-] vim编辑器---批量注释与反注释 方法一 块选择模式 插入注释 取消注释 方法二 替换命令 批量注释 取消注释 实例演示   vim编辑器---批量注释与反注释 在使用vim编写代码的时候, ...

  5. 从头开始学JavaScript (五)——操作符(二)

    原文:从头开始学JavaScript (五)--操作符(二) 一.乘性操作符 1.乘法:*      乘法操作符的一些特殊规则: 如果操作数都是数值,按照常规的乘法计算,如果乘积超过了ECMAscri ...

  6. linux_ Redhat Linux配置JDK和Tomcat需要注意的地方

    转:http://blog.csdn.net/hongdi/article/details/10525797 1.操作系统和安装包操作系统:Redhat Linux 6.4服务器版,桌面安装JDK:j ...

  7. Bag标签之中的一个行代码实行中文分词实例1

    例1: 分词(返回以逗号隔开的词组,gap=",") <bagid=pPage act=2words name=words gap=",">我喜欢黄 ...

  8. PHP和MySQL Web开发 原书第4版 高清文字版,有目录,附带源码

    PHP和MySQL Web开发  原书第4版:http://yunpan.cn/QCWIS25zmYTAn  提取码 fd9b PHP和MySQL Web开发  原书第4版源码:http://yunp ...

  9. PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例

    原文:PHP+百度地图API+JAVASCRIPT实现GPS坐标与百度坐标转换的实例 <!--小幅的坐标转换点位程序--> <!DOCTYPE html> <html&g ...

  10. python解析Yahoo的XML格式的天气预报,获取当天和近期几天的天气:

    下面是接口xml格式数据: <rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo=& ...