moq

.NET 测试库
授权协议 BSD
开发语言 C# .NET
所属分类 开发工具、 单元测试工具
软件类型 开源软件
地区 不详
投 递 者 秦晋
操作系统 Windows
开源组织
适用人群 未知
 软件概览

一个流行、友好的 .NET 模拟库

Moq(发音为“Mock you”或“Mock”)是.NET中唯一一个完全利用 .NET Linq 表达式树和 lambda 表达式而从头开发的模拟库,这使它成为最高效、类型安全和重构友好的模拟库。它支持模拟接口和类。它的API非常简单和直接,不需要任何关于模拟概念的知识或经验。

示例代码:

var mock = new Mock<ILoveThisFramework>();

// WOW! No record/replay weirdness?! :)
mock.Setup(framework => framework.DownloadExists("2.0.0.0"))
    .Returns(true)
    .AtMostOnce();

// Hand mock.Object as a collaborator and exercise it, 
// like calling methods on it...
ILoveThisFramework lovable = mock.Object;
bool download = lovable.DownloadExists("2.0.0.0");

// Verify that the given method was indeed called with the expected value
mock.Verify(framework => framework.DownloadExists("2.0.0.0"));
  • 一、概念   Moq是利用诸如Linq表达式树和Lambda表达式等·NET 3.5的特性,为·NET设计和开发的Mocking库。Mock字面意思即模拟,模拟对象的行为已达到欺骗目标(待测试对象)的效果.   Moq模拟类类型时,不可模拟密封类,不可模拟静态方法(适配器可解决),被模拟的方法及属性必须被virtual修饰. 二、示例 1 //待模拟对象 2 public interface

  • 我们在做单元测试的时候,常常困扰于数据的持久化问题,很多情况下我们不希望单元测试影响到数据库中的内容,而且受数据库的影响有时我们的单元测试的速度会很慢,所以我们往往希望将持久化部分隔离开,做单元测试的时候不真正的将数据持久化。这种隔离我们一般使用抽象的方式,也就是利用接口或抽象类将持久化层隔离开,然后利用mock来模拟相应的接口或抽象类来完成相应的持久化类。Moq就是这种Mock框架之一。 Moq

  • C#/.net 单元测试xUnit、Mock、Moq 在做单元测试的时候,有时需要引用很多的外部对象,例如网络通信、记录日志等。单元测试无法控制这些外部的依赖对象,所以需要使用Stub和Mock来模拟这些外部对象。 案例说明 用以下实例来进行单元测试 //检查文件名的长度,并使用IWebService来记录错误 public class CheckLength { public IWebS

  • moq

    http://code.google.com/p/moq/ 转载于:https://www.cnblogs.com/wangpy/archive/2009/08/11/1543328.html

  • c# 关于Moq的使用细节 最近一直在做关于unit test方面的工作,使用的是Moq中的Mock方法。之前自学的时候在网上看的教程云里雾里,在工作过程中有的方法通过实验和询问同事终于搞懂了一些,现在把自己使用到的方法记录下来,持续更新 var test = new Mock<ITest>(); test.Setup(x=>x.testvalue).Returns(value_want); te

  • Moq Quickstart 内容来自MoqWiki: Moq4 Quickstart 方法 using Moq; // Assumptions 假定有下面几个类: public interface IFoo { Bar Bar { get; set; } string Name { get; set; } int Value { get; set; } bo

  • EXCEL的列:组织id,供应商编号,供应商地点,料号,最小拆分量、采购提前期、最小订购量、最小包装量 --采购导入更新MOQ四个值,若有为空的那列,会保留原来的值,不会去更新那列的值 PROCEDURE UPDATE_PO_MOQ AS CURSOR PO_MOQ_CUR IS SELECT ID, TRIM(ORG_ID) ORG_ID, trim(vendor_no) vendor_no,

  • 目录 源代码 介绍 背景 问题 没有回调的模拟 模拟回调 解决方案 源代码 下载源代码– 9 KB GitHub 介绍 Moq是.Net的绝佳模拟框架。它在单元测试中用于将测试的类与其依赖项隔离开,并确保要调用依赖对象的预期方法。 为了执行此任务,应通过各种Setup方法重载来设置要调用的模拟对象的那些方法。但是,当方法具有ref/out参数或为静态方法时,正确的模拟方法可能并非易事。本文关注如何

  • Moq 1 My Cases         1.1 简单入门 2 Reference         2.1 Methods         2.2 Matching Arguments         2.3 Properties         2.4 Events         2.5 Callbacks         2.6 Verification         2.7 Cust

  • 在TDD开发模型中,经常是在编码的同时进行单元测试的编写,由于现代软件开发不可能是一个人完成的工作,所以在定义好接口的时候我们就可以进行自己功能的开发(接口不能经常变更),而我们调用他人的功能时只需要使用接口即可。 但我们在编写自己的单元测试并进行功能验证的时候,如果接口的实现人还没有完成代码怎么办呢?一般我们可能会自己写一个模拟实现来进行单元测试,这就是我们经常所说的单元测试中的Stub和Moc

  • 目录 介绍 背景 使用代码 兴趣点 介绍 给出了如何经常使用Moq以及如何改进这种工作方式的解释。 背景 如果您对.NET Core中的xUnit,模拟和固定装置(fixtures)有一定的经验,这将非常有帮助。此处显示的测试是针对.NET Core编写的,但是大多数代码都可以在使用其他单元测试框架的情况下使用。如果您不熟悉固定装置(fixtures),建议阅读这篇文章。如果您不熟悉Moq,建议阅

  • 我正在测试一个用于进行Web API 调用的服务的方法 . 如果我还在本地运行Web服务(位于解决方案中的另一个项目中),则使用普通 HttpClient 可以正常进行单元测试 . 但是,当我签入我的更改时,构建服务器将无法访问Web服务,因此测试将失败 . 我通过创建一个 IHttpClient 接口并实现我在我的应用程序中使用的版本,为我的单元测试设计了一种方法 . 对于单元测试,我使用模拟的

  • Microsoft很久以前就弃用了私有访问器 . 私有访问器生成器存在缺陷,如果您使用了一些访问器生成器未正确支持的语言结构,可能会导致Visual Studio崩溃或拒绝构建 . 首先,测试私有方法也是一个糟糕的主意 . 你想从外面测试一个类,这样你在课堂上抛出的任何东西都会使它产生预期的结果 . 该类如何执行您希望它执行的操作是实现细节 . 如果您开始为私有方法编写单元测试,那么您正在创建一个

  •   测试方法  1  //  准备 Mock IFoo 接口  2  var mock  =   new  Mock < IFoo > ();   3  //  配置准备模拟的方法,当调用接口中的 DoSomething 方法,并传递参数 "bing" 的时候,返回 true  4  mock.Setup(foo  =>  foo.DoSomething( " ping " )).Returns(

  • .Net单元测试框架: moq 如果项目目的Internal方法需要再单元测试项目中引用到测试,由于默认情况下,Internal只能在同一程序集中引用,这种情况下需要在AssemblyInfo.cs中添加 “[assembly: InternalsVisibleTo(“UnitTest项目名称”)]” 使得Internal类型和方法在项目之外的单元测试项目中也可以访问到 单元测试类或方法的Depl

 相关资料
  • 5.3 测试Android库 测试 Android 库工程的方式和应用工程是一样。 仅有的不同就是整个库(包括它的依赖)会作为一个依赖库被自动的添加到测试应用中。测试APK的测试结果不仅包括它自己代码的测试,还包括 Android 库的以及库的所有依赖的测试。 库的 manifest 被合并到测试应用的 manifest 中(这种情况就和任何工程引用这个库是一样的) androidTest 任务的

  • 22.13.5.测试检测 测试任务检测哪些类是通过检查编译测试类的测试类。默认情况下它会扫描所有.calss文件.可以自定义包含/排除哪些类需不要要被扫描.所使用不同的测试框架(JUnit/ TestNG)时测试类检测使用不同的标准。 当使用JUnit,我们扫描的JUnit3和JUnit4的测试类。如果任一下列条件匹配,类被认为是一个JUnit测试类: 类或父类集成自TestCase或Groovy

  • 22.13.2.调试 测试任务提供了Test.getDebug()属性,可使JVM等待调试器附加到5005端口后在进行调试. 通过调用--debug-JVM任务选项,这也可以启用调试任务(since Gradle1.12)。

  • 程序测试是一种找到缺陷的有效方式,但是它对证明没有缺陷却无能为力。 Edsger W. Dijkstra, “The Humble Programmer” (1972) 作为软件工程质量保障体系的重要一环,测试是应该引起我们充分注意并重视的事情。前面说过,Rust 语言的设计集成了最近十多年中总结出来的大量最佳工程实践,而对测试的原生集成也正体现了这一点。下面来看 Rust 是怎么设计测试特性的。

  • import counter from './counter'; describe('counter reducers', () => { it('should handle initial state', () => {

  • 下面的示例会为您测试Redux应用程序打下坚实的基础。

  • 就像 会编译代码并运行生成的二进制文件一样,cargo test 在测试模式下编译代码并运行生成的测试二进制文件。可以指定命令行参数来改变 cargo test 的默认行为。例如,cargo test 生成的二进制文件的默认行为是并行的运行所有测试,并捕获测试运行过程中产生的输出避免他们被显示出来,使得阅读测试结果相关的内容变得更容易。 这些选项的一部分可以传递给 cargo test,而另一些则

  • 测试用来验证非测试的代码是否按照期望的方式运行的 Rust 函数。测试函数体通常执行如下三种操作: 设置任何所需的数据或状态 运行需要测试的代码 断言其结果是我们所期望的 让我们看看 Rust 提供的专门用来编写测试的功能:test 属性、一些宏和 should_panic 属性。 作为最简单例子,Rust 中的测试就是一个带有 test 属性注解的函数。属性(attribute)是关于 Rust