工具分享:JsMockito (JavaScript 单元测试工具)
来源:互联网 发布:硅藻泥 知乎 编辑:程序博客网 时间:2024/05/23 16:56
JsMockito
用过Rhino Mocks后大家一定对它印象深刻,用它来做单元测试的case相当的省事。今天咱们同样来介绍一款Mock工具:JsMockito,用它能轻松的制作JavaScript程序的单元测试case。
JsMockito的运行还依赖另外一款开源的JS工具:JsHamcrest,我们可以通过如下代码来搭建测试环境:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head> <title>Test JavaScript Mock</title> <script src="jshamcrest.js" language="javascript" type="text/javascript"></script> <script src="jsmockito.js" language="javascript" type="text/javascript"></script> <script language="javascript" type="text/javascript"> var mockFunc = JsMockito.mockFunction(); JsMockito.when(mockFunc)('jim').thenReturn('hello jim'); alert(mockFunc('jim')); </script></head><body></body></html>
模拟JS的原生对象
var mockArray = JsMockito.mock(Array); JsMockito.when(mockArray).slice(10).thenReturn('^__^'); alert(mockArray.slice(10)); //结果是: ^__^
模拟对象的方法
bob = { FullName: 'bob ling', Introduce: function () { return 'im bob'; } }; var mockIntroduce = JsMockito.mockFunction(); JsMockito.when(mockIntroduce)().thenReturn("it's ok!"); bob.Introduce = mockIntroduce; alert(bob.Introduce()); //结果是: it's ok
模拟对象的属性
var mockBob = JsMockito.mock(bob); mockBob.FullName = 'Bruce Lee'; alert(mockBob.FullName);//结果是:Bruce Lee
模拟对象的方法(根据输入参数的情况来返回结果)
var mockFunction = JsMockito.mockFunction(); JsMockito.when(mockFunction)(JsHamcrest.Matchers.lessThan(10) && JsHamcrest.Matchers.greaterThan(5), JsHamcrest.Matchers.anything()).thenReturn('this value must belong 5 to 10'); alert(mockFunction(6, null)); //this value must belong 5 to 10 alert(mockFunction(2, null));//undefined
模拟对象的方法(根据调用环境的不同来返回结果)
context1 = {}; context2 = {}; var mockFunc = JsMockito.mockFunction(); JsMockito.when(mockFunc).call(context1).thenReturn('this method was called by context'); alert(mockFunc.apply(context1)); //this method was called by context alert(mockFunc.apply(context2)); //undefined alert(mockFunc.call(context1)); //this method was called by context alert(mockFunc.call(context2)); //undefined
- 工具分享:JsMockito (JavaScript 单元测试工具)
- 工具分享:Jasmine(JavaScript单元测试工具)
- javascript 单元测试工具 JsUnit
- Javascript单元测试工具
- JavaScript的单元测试工具
- 高效 JavaScript 单元测试工具----JsTestDriver
- 单元测试工具
- 单元测试工具
- 单元测试工具
- 对 JavaScript 进行单元测试的工具
- javascript 单元测试覆盖率工具,及Grunt集成
- JQuery团队打造的javascript单元测试工具QUnit介绍javascript
- 分享10个JavaScript在线Debugging工具
- 工具分享
- 工具分享
- 测试函数JavaScript单元测试工具使用—QUnit
- JQuery团队打造的javascript单元测试工具QUnit介绍
- 前端自动化测试工具--使用karma进行javascript单元测试
- Boost::asio异步回调在类中的实现。
- linux与windows 共享目录 mount cif 协议
- android简单实现短信拦截
- 计算路程
- SGA_MAX_SIZE与SGA_TARGET
- 工具分享:JsMockito (JavaScript 单元测试工具)
- GetLastError()返回值的意义
- 微软等公司数据结构+算法面试100题(第1-100题)首次完整亮相
- Java命名规范
- 一个现金流量表的代码
- x86虚拟机设计之CISC指令解析
- hdu3940
- java web java网站开发相对路径绝对路径
- 从今以后我一个人唱悲伤情歌:伤感的QQ空间日志