摘要: (一)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. HDU 1754 I Hate It (段树 &amp; 树阵)

    I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  2. 十天学Linux内核之第三天---内存管理方式

    原文:十天学Linux内核之第三天---内存管理方式 昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今 ...

  3. java Map 之 排序(key,value)

    一:起因: (1)现实中须要Map容器进行排序的情况非常多非常多:由于Map<key,value>键值对的存储结构特别是HashMap的结构是非常优秀的,数据存储就难免对其进行排序: (2 ...

  4. bigdata_一篇文看懂Hadoop

    本文转载:暂未找到原出处,如需署名 请联系 我们很荣幸能够见证Hadoop十年从无到有,再到称王.感动于技术的日新月异时,希望通过这篇内容深入解读Hadoop的昨天.今天和明天,憧憬下一个十年. 本文 ...

  5. oracle_分区表的新增、修改、删除、合并。普通表转分区表方法

    一. 分区表理论知识Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中.分区完全对应用透明. Oracl ...

  6. linux_awk_内部正则过滤

    awk -F'\t' '{if($3 !~ /^<p><img/){print $0}}' latex500.db|wc -l

  7. cocos2d 缓存池 对象的再利用

    1.简单的叙述说明池 例如,我们知道,游戏的游戏类型跑酷,游戏元素都在不断重复.游戏的内容将继续从屏幕右侧的创建,当元件在屏幕的左侧的,将消失.假设不变new 对象.release 对象 性能影响.怎 ...

  8. jsp的&lt;%%&gt;

    于jsp于 可以使用<% %> 嵌入java代码,简称jsp文字. 可以使用<% -- -- %> 凝视,这是jsp注视 可以使用<%! %> 声明全局变量 版权声 ...

  9. [LeetCode]N-Queens 八皇后问题扩展(经典深层搜索)

    The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens ...

  10. MBProgressHUD -[__NSCFString sizeWithAttributes:]: unrecognized selector问题解决了

    最近的工作需要project打包成一个静态库文件,然后给他人使用提供. 在project有提及第三方库MBProgressHUD.在打包出静态库文件后,写了个Demo,引用了当中的一段代码来显示MBP ...