Moq 测试 属性,常用方法

摘要: (一)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) 编辑
上一篇:bootstrap选项卡页面中如何关闭当前选项卡及页面


下一篇:oracle中根据当前记录查询前一条和后一条记录