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);
    

      

         

  • 相关阅读:
    第一讲小结(位运算)
    新学期开始
    前缀表达式-怎样用空格分隔一个字符串
    计概期末前的小小总结
    动规作业-求数组不相邻元素之和的最大值
    网格-递归作业2-放苹果问题
    1025 数的划分(搜索和递推方法)
    网格-递归作业 集合里的乘法
    网格-递归作业 城堡问题
    去先导零的一个大坑
  • 原文地址:https://www.cnblogs.com/LittleFeiHu/p/4456843.html
Copyright © 2011-2022 走看看