2008-08-12 12:41 by 副主编
ouspec
有1309人浏览
声明:ITeye资讯文章的版权属于ITeye网站所有,严禁任何网站转载本文,否则必将追究法律责任!
Johannes Link是一个热爱Agile的小伙子,他对现存的JavaScript单元测试框架不100%满意,他解释了原因,比如他给出了一个例子:
- testDoubleSpeaker:function(){with(this){
-
varactualMsg=null;
-
varmockSay=function(msg){
- actualMsg=msg;
- };
- Speaker.say=mockSay;
-
DoubleSpeaker.say('oops');
-
assertEqual('oopsoops',actualMsg);
- }}
这个例子能够运行,但是下面的方式是不是更好?
- testDoubleSpeaker:function(){with(this){
-
mock(Speaker).andDo(function(){
-
DoubleSpeaker.say('oops');
-
verify(Speaker.say)('oopsoops');
- });
- }},
所以,他给出了一个新的JavaScript mocking框架:
MockMe。主要功能是:
1。提供基本颗粒mocking的功能,如果可能,可以伪装一个简单测试功能,而不影响其他内容(比如对象,原型或者全局命名空间等)。
2。很多时候,spying(刺探)比mocking更好,因为前者更简单。spying指的不是在你的mock对象开始测试前,指定期望的特定反馈,而是当测试发生时或之后,你使用mock spy对象来刺探反馈结果。
下面是另外一个例子:
- when(f)('in').thenReturn('out');
-
assertEqual('out',f('in'));
-
when(f)({name:'hello'}).thenReturn('yeah');
-
assertEqual('yeah',f({name:'hello'}));
-
when(f)(any()).thenReturn('yeah');
-
assertEqual('yeah',f(1));
-
verify(times(2),f)(1);
-
useMockerFor(function(mocker)){
-
mocker.within(MyObject).mock('f1');
- when(MyObject.f1)().thenReturn(5);
- assertEqual(7,MyObject.f2());
-
}
- assertEqual(3,MyObject.f2());
详细内容可以访问
http://johanneslink.net/projects/mockme.html
分享到:
相关推荐
它的目标是让Mocking以一种自然的方式与现有单元测试进行集成,使它更加简单、直观,以避免开发人员被迫重写测试或学习需要大量录制/播放的Mock框架。Moq的目标就是为了帮助那些编写测试代码,但却不使用Mocking框架...
Mockito是一个针对Java的mocking框架。它与EasyMock和jMock很相似,但是通过在执行后校验什么已经被调用,它消除了对期望行为(expectations)的需要。其它的mocking库需要你在执行前记录期望行为(expectations),...
在 TDD 开发中,需要先跑通测试然后再写具体实现,因此需要先伪造出实现类和函数来通过测试,这就是 Mock。如果你的团队使用 TDD 开发流程,这个框架会非常有用。
moq:最受欢迎和友好的.NET的mocking框架
Google C ++模拟框架建置状态特拉维斯(Travis): biicode:信息这是对的改编,以使其可以与Biicode一起使用。概述Google的框架,可在各种平台(Linux,Mac OS X,Windows,Windows CE,Symbian等)上编写和使用C +...
ATML制造 oop-junit-mocking
因此,这主要只是一个实验玩具箱,不应在生产代码库中使用。如何使用目前,仅每晚有效。 只需使用宏即可,如下面的示例所示。 当此代码正常运行时,MockMe将无效。 但是,当代码作为单元测试#[cfg(test)]一部分运行...
MSVC_SEARCH - 如果使用 MSVC 编译,则可以将此变量设置为“MD”或“MT”以启用搜索 gmock 构建树(默认值:“MD”)定义的变量定义以下变量: GMOCK_FOUND - 找到了 Google 测试框架GMOCK_INCLUDE_DIRS - 包括目录...
因此,我创建了LunchNotifier ,这是一个比Hello LunchNotifier稍多的类,可以针对该类编写单元测试(带有模拟)。借口纽约办事处为员工提供的好处之一是由内部厨师免费提供午餐。 每天,当厨师们准备好饭菜后,...
Mockk:一个用于Kotlin开发的mocking库
嘲鸟 进行模拟面试的框架 更多信息即将推出...
前端开源库-jsmockitojsmokito,受出色mockito启发的javascript mocking框架
Google JS Test是一个运行于V8 JavaScript引擎下的JavaScript单元测试框架,其在Google内部负责对Chrome的快速JS执行速度进行测试,现在Google以开源工程开放给大家使用。 Google JS Test主要特性: 超快的...
Service Mocker - 下一代前端API mocking框架无任何后端服务器
Mimus:Swift的Mocking库
Phake:PHP Mocking对象框架
自动化库:精选的Java和Kotlin框架,与软件测试,质量保证和相邻流程自动化相关的库和工具的清单
Laravel开发-laravel-dusk-mocking 拉拉维尔黄昏试验模拟立面。
可以从 Central Repository 和 Bintray ... Mockito 是一个很好用的模拟框架。 它让您可以使用干净简单的 API 编写漂亮的测试。 Mockito 不会让您感到宿醉,因为这些测试非常具有可读性,并且会产生干净的验证错误。
Rust的模拟框架(目前仅每晚一次)。 有关更多信息,请参见文档。 #[mockable] mod hello_world {pub fn world()->&'static str {Rust的模拟框架(目前仅每晚)。 有关更多信息,请参见文档。 #[mockable] mod ...