单元测试之moles
来源:互联网 发布:玉溪餐饮软件yxqlkj 编辑:程序博客网 时间:2024/04/30 22:09
一、moles使用注意事项
- 被测类要使用public修饰符,不然无法使用生成的moles.dll。
- 测试方法要使用[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缺点
- 对源代码的每次修改,测试工程都必须rebuild才能生效。
- 等等....
- 单元测试之moles
- React Native之携程Moles框架
- React Native之携程Moles框架
- React Native Bundle 拆包工具之 moles-packer 介绍
- React Native bundle 打包、拆包工具之moles-packer
- hdu4215 Moles
- HDU_4125 Moles 线段树
- hdu 4125 Moles
- Visual Studio 单元测试之二---顺序单元测试
- <h1>单元测试之android单元测试</h1>
- 单元测试系列一:单元测试之道
- 单元测试之我见
- 单元测试之测试目的
- 开发利器之单元测试
- 单元测试之DUnit学习心得
- 单元测试之关键问题解答
- 单元测试之关键问题解答
- 单元测试之组织保障
- vmware player 网络配置(vmnetcfg.exe)
- redhat linux VSFTP
- 尝试自己从0开始搭建程序,重新发明是煅炼的好方式
- Silverlight技术调查(1)——Html向Silverlight传参
- WMI 远程连接问题解决方法
- 单元测试之moles
- eMule中的分布式哈希表技术: Kademlia
- linux定时器的实现方法
- 存储概念解析:NAS与SAN的区别
- linux上安装memcached小结
- Error: could not open `C:\Program Files\Java\jre6\lib\i386\jvm.cfg'
- robots文件的Crawl-delay是什么意思
- dereferencing pointer to incomplete type"
- oracle sql语句