JustMock Lite (Free Mocking Framework For .net)

  1. 通过 Nuget 安装

2.   官网下载(官网不行点这里)

3.   帮助文档

商业版和免费版区别概览

MockingContainer

测试类准备:一般来说也是业务类


    public class ClassUnderTest
    {
        private IFirstDependency firstDep;
        private ISecondDependency secondDep;

        public ClassUnderTest(IFirstDependency first, ISecondDependency second)
        {
            this.firstDep = first;
            this.secondDep = second;
        }

        public IList<object> CollectionMethod()
        {
            var firstCollection = firstDep.GetList();

            return firstCollection;
        }

        public string StringMethod()
        {
            var secondString = secondDep.GetString();

            return secondString;
        }
    }

    public interface IFirstDependency
    {
        IList<object> GetList();
    }

    public interface ISecondDependency
    {
        string GetString();
    }

  单元测试


        [TestMethod]
        public void ShouldMockDependenciesWithContainer()
        {
            // ARRANGE
            // Creating a MockingContainer of ClassUnderTest.
            // To instantiate the system uder test (the container) you should use the Instance property
            // For example: container.Instance.
            var container = new MockingContainer<ClassUnderTest>();

            string expectedString = "Test";

            // Arranging: When the GetString() method from the ISecondDependecy interface
            //              is called from the container, it should return expectedString.
            container.Arrange<ISecondDependency>(
               secondDep => secondDep.GetString()).Returns(expectedString);

            // ACT - Calling SringMethod() from the mocked instance of ClassUnderTest
            var actualString = container.Instance.StringMethod();

            // ASSERT
            Assert.AreEqual(expectedString, actualString);
        }

  需要说明的是MockingContainer构造函数有一个可选参数AutoMockSettings,其中AutoMockSettings最主要的一个作用的是当ClassUnderTest有多个构造函数时,指定合适的构造函数来实例化对象

     当业务类中有一个无参构造函数,一个有参构造函数,在没有设置AutoMockSettings的情况下会默认执行无参构造函数,

    可以像下面这样来指定需要的构造函数

        AutoMockSettings settings = new AutoMockSettings
            {
                ConstructorArgTypes = new Type[]{
                  typeof(IFirstDependency),typeof(ISecondDependency)
                }
            };

            // ARRANGE
            // Creating a MockingContainer of ClassUnderTest.
            // To instantiate the system uder test (the container) you should use the Instance property
            // For example: container.Instance.
            var container = new MockingContainer<ClassUnderTest>(settings);

  

     

时间: 2024-12-12 13:08:21

JustMock Lite (Free Mocking Framework For .net)的相关文章

Java Unit Test Mocking Framework

Mocking Framework for JavaScript Sinon The third party library. Standalone test spies, stubs and mocks for JavaScript. Works with any unit testing framework. Jsmockito Sinon vs Jsmockito Mocking Framework for Java

利用Mocking Framework 单元测试Entity Framework

一.前言 在实际编写程序时,往往需要与数据库打交道,在单元测试中直接使用数据库又显得太重,如果可以方便的编写一些测试数据,这样更易于检测功能.如何模拟数据库行为便是本篇的主题.微软有教程说明Moq Entity Framework,需注意的是EF的版本必须是6以上.但在这篇教程中是直接使用DbContext,而自己的应用程序中都是用UnitOfWork模式.经过修改后也可以实现类似功能. 二.参考文献 https://msdn.microsoft.com/en-us/data/dn314429

Entity Framework版本历史概览

EF版本 .net framework和IDE版本 主要功能 EF(or EF3.5) Visual Studio 2008 SP1 (.NET 3.5 SP1) 基本的O/R映射支持,使用DB First开发模式 EF 4 Visual Studio 2010 (.NET 4.0) 支持POCO实体 延迟加载 提高单元测试能力 自定义的代码生成机制 支持Model First开发模式 EF 4.1 NuGet 提供简化的DbContext接口 支持Code First开发模式 EF 4.1.1

【Entity Framework系列】Overview - 版本历史概览

EF版本 .net framework和IDE版本 主要功能 EF(or EF3.5) Visual Studio 2008 SP1 (.NET 3.5 SP1) 基本的O/R映射支持,使用DB First开发模式 EF 4 Visual Studio 2010 (.NET 4.0) 支持POCO实体 延迟加载 提高单元测试能力 自定义的代码生成机制 支持Model First开发模式 EF 4.1 NuGet 提供简化的DbContext接口 支持Code First开发模式 EF 4.1.1

第一篇:Entity Framework 简介

先从ORM说起吧,很多年前,由于.NET的开源组件不像现在这样发达,更别说一个开源的ORM框架,出于项目需要,以及当时OOP兴起(总不至于,在项目里面全是SQL语句),就自己开始写ORM框架.要开发ORM框架首先要了解ORM概念. ORM 对象关系映射,O(Object) 对象,在项目中就是实体,更加精确的来说就是数据Model,也可以说持久化类.R(Relation) 关系数据,M (Mapping)映射,将对象映射到关系数据,将关系数据映射到对象的过程. 更加直观理解就是,ORM 就是以OO

Go语言(golang)开源项目大全

转http://www.open-open.com/lib/view/open1396063913278.html内容目录Astronomy构建工具缓存云计算命令行选项解析器命令行工具压缩配置文件解析器控制台用户界面加密数据处理数据结构数据库和存储开发工具分布式/网格计算文档编辑器Encodings and Character SetsGamesGISGo ImplementationsGraphics and AudioGUIs and Widget ToolkitsHardwareLangu

C++开源代码项目汇总

Google的C++开源代码项目 v8  -  V8 JavaScript EngineV8 是 Google 的开源 JavaScript 引擎.V8 采用 C++ 编写,可在谷歌浏览器(来自 Google 的开源浏览器)中使用.V8 根据 ECMA-262 第三版中的说明使用 ECMAScript,并在使用 IA-32 或 ARM 处理器的 Windows XP 和 Vista.Mac OS X 10.5 (Leopard) 以及 Linux 系统中运行.V8 可以独立运行,也可以嵌入任何

23个.NET开源项目

Castle是.NET里走过了三年的开源框架,下载地址如:http://www.castleproject.org/index.html ,当然如果你是从事过JAVA开发并用过spring,hibernate的话,那看这个框架应该说是很清晰.另付上在这个框架上有研究的一些Blog文章:http://terrylee.cnblogs.com/,,看过他整理制作的新版本C#设计模式的人大概知道. Nbear 是另一个.NET开源框架http://nbear.org/ or http://www.co

awesome-php中英文资源整理(同步更新)

中文版 收集整理一些常用的PHP类库, 资源以及技巧. 以便在工作中迅速的查找所需… 这个列表中的内容有来自 awesome-php 的翻译, 有来自开发者周刊以及个人的积累等. 一个前端组件的列表 awesome-frontend 推荐 学习资源 PHP相关的有参考价值的社区,博客,网站,文章,书籍,视频等资源 PHP网站(PHP Websites) PHP The Right Way – 一个PHP实践的快速参考指导 PHP Best Practices – 一个PHP最佳实践 PHP We