一、moles使用注意事项


  1. 被测类要使用public修饰符,不然无法使用生成的moles.dll。
  2. 测试方法要使用[HostType("Moles")]标记。

二、moles模拟函数


1.静态函数

源代码:

   public class Program{public int a { get; set; }public static string A(){return "hello";}static void Main(string[] args){}}











测试代码:

  MProgram.A = () => "yes";Assert.AreEqual("hello", Program.A());

2、一般函数

源代码:

    public class Program{public int a { get; set; }public string A(){return "hello";}static void Main(string[] args){}}

测试代码:

            MProgram.AllInstances.A = _ => "yes";var m = new MProgram(){A=()=>"no"};var m2 = new MProgram();Program p = m.Instance;Program p2 = m2.Instance;Assert.AreEqual("yes",p.A());Assert.AreEqual("no",p2.A());

4、属性

源代码

    public class Program{public int a { get; set; }public  string A(){return "hello";}static void Main(string[] args){}}

测试代码

            MProgram.AllInstances.aGet = _ => 5;MProgram m = new MProgram();Program p = m.Instance;Assert.AreEqual(5,p.a);

5、构造函数

源代码:

    public class Program{public int a { get; set; }public  string A(){return "hello";}public Program(int a){this.a = a;}static void Main(string[] args){}}

测试代码:

            MProgram.ConstructorInt32 = (@this, value) =>{var mp = new MProgram(@this){aGet = ()=>value};};Program pp = new Program(5);MProgram m = new MProgram(pp);Program p = m.Instance;Assert.AreEqual(5,p.a);

6、带参函数

上面的函数都是没有参数的有木有?下面来个带参的

源代码:

    public class Program{public int a { get; set; }public string A(int a){return "hello";}static void Main(string[] args){}}

测试代码:

            MProgram.AllInstances.AInt32 = (content, b) =>{    return "ys"+b;// () => "yes";};var m2 = new MProgram();Program p2 = m2.Instance;Assert.AreEqual("ys4", p2.A(4));

可以看出,moles将带参函数A改编成AInt32,可能是为了处理重载函数吧。

三、moles缺点


  1. 对源代码的每次修改,测试工程都必须rebuild才能生效。
  2. 等等....

单元测试之moles相关推荐

  1. Java单元测试之JUnit4详解

    2019独角兽企业重金招聘Python工程师标准>>> Java单元测试之JUnit4详解 与JUnit3不同,JUnit4通过注解的方式来识别测试方法.目前支持的主要注解有: @B ...

  2. 单元测试之道一:NUnit基础

    一.单元测试的概述 1.单元测试是开发编写的一小段代码,用于检测被测代码的一个很小的,很明确的功能是否正确.通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为.执行单元测试是 ...

  3. Java基础学习总结(24)——Java单元测试之JUnit4详解

    Java单元测试之JUnit4详解 与JUnit3不同,JUnit4通过注解的方式来识别测试方法.目前支持的主要注解有: @BeforeClass 全局只会执行一次,而且是第一个运行 @Before  ...

  4. php的old函数,laravel单元测试之phpUnit中old()函数报错解决

    php 的 laravel单元测试之phpUnit中old()函数报错解决 前言 最近在做laravel单元测试.遇到了一个问题: 当添加的view里面使用old()函数时就会报错,正常url访问没问 ...

  5. 补习系列(8)-springboot 单元测试之道

    目录 目标 一.About 单元测试 二.About Junit 三.SpringBoot-单元测试 项目依赖 测试样例 四.Mock测试 五.最后 目标 了解 单元测试的背景 了解如何 利用 spr ...

  6. 艾伟_转载:单元测试之道(使用NUnit)

    首先来看下面几个场景你是否熟悉 1.你正在开发一个系统,你不断地编码-编译-调试-编码-编译-调试--终于,你负责的功能模块从上到下全部完成且编译通过!你长出一口气,怀着激动而又忐忑的心情点击界面上的 ...

  7. Android单元测试之Local unit tests(上)

    Android单元测试之Local unit tests(上) 简介 本地单元测试 JUnit 4 添加依赖 测试例子 结论 Mockito 添加依赖 测试例子-mock基本使用 测试例子-mock与 ...

  8. Java单元测试之模拟利器-使用PowerMock进行Mock测试

    首页 国产Linux Linux命令 openSUSE ArchLinux Slackware FreeBSD Ubuntu CentOS Fedora Debian PHP教程 在线教程 登录 注册 ...

  9. Android 单元测试之Mockito

    在博客Android 单元测试之JUnit4中,我们简单地介绍了:什么是单元测试,为什么要用单元测试,并展示了一个简单的单元测试例子.在文章中,我们只是展示了对有返回类型的目标public方法进行了单 ...

最新文章

  1. 我作为Java后端,分享一下入门Spark编程的经历!
  2. R语言seq函数生成数据序列实战
  3. 硬件知识:U盘缩水是怎么回事,如何恢复U盘真实容量?
  4. 从源码角度剖析VC6下的内存分配与切割的运作
  5. 使用javamail 发送邮件
  6. VC下Debug 和Release 区别【转】
  7. 微信小程序swiper滑块视图容器控件使用整理
  8. 芒果文件服务器,芒果服务器
  9. Unity2021如何设置中文模式
  10. 软件工程师考试(高级)大纲
  11. 54_集合类库(上)
  12. 登陆成功率99% 云知声携手平安好医生推声纹登录系统
  13. 因证书过期导致Java 执行http相关动作失败
  14. 铁路 计算机系统维护,成都市计算机学校计算机系统维护就业前景
  15. cocos2dx在Android studio运行 以及在 Android 平台上使用 JavaScript 直接调用 Java 方法
  16. CodeForces - 89A - Robbery
  17. u8用友服务器系统在哪,用友u8数据库服务器在哪
  18. AI公开课:19.04.24刘聪-科大讯飞AI副院长《人工智能的“顶天立地”之路》课堂笔记以及个人感悟
  19. i 标签设置背景图片作 icon的问题
  20. SpringBoot 远程调试

热门文章

  1. 《快速上手ARM体系结构》网易公开课
  2. 怎么做SEO——页面权重计算公式
  3. ESET NOD32 互联网安全软件和防毒软件 -简单,可靠的防护。
  4. 2020年加班工资新规定:1.5倍、2倍、3倍,终于理清楚了!
  5. 霍尔开关的分类及如何选型
  6. 论文笔记 Weakly Supervised Deep Detection Networks - CVPR 2016
  7. ssm智能餐厅菜品厨位分配管理系统 java
  8. RIoTBoard开发板系列笔记(四)—— 使用VPU硬件解码
  9. win10查看电池损耗:生成损耗报告
  10. PaddleOCR 文字检测部分源码学习(8)-损失函数(4)