zoukankan      html  css  js  c++  java
  • 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);
    

      

         

  • 相关阅读:
    数据类型及用法
    NFS与SSH
    nginx服务,nginx反向代理
    rpm软件包管理
    磁盘分区,文件系统,软链接和硬链接,内存和进程管理
    Linux常用命令,文件目录和权限管理
    操作系统与网络协议(day3)
    计算机基础之硬件简介(Day2)
    QT写串口
    485传输
  • 原文地址:https://www.cnblogs.com/LittleFeiHu/p/4456843.html
Copyright © 2011-2022 走看看