论坛首页 综合技术论坛

mock框架搞什么搞?

浏览 30162 次
该帖已经被评为良好帖
作者 正文
   发表时间:2007-05-12  
raimundox 写道
taowen 写道
用真实的view来测,用mock框架造一个来测,自己手写一个假的来测。三者没有谁推出谁的关系。我只是要说明一,在这里用MVP没有你说的过度设计的问题。二,这里用mock框架很笨拙。

对于你提到的设计步骤的问题。我同意你的看法。下次写代码的时候会注意用小步骤前进。最终的view接口是这样的没有什么问题吧?难道小步骤TDD会出现另外一个版本的view接口?


呵呵,我没说MVP是过渡设计,我说的是View interface...毕竟我受不了上来就一个接口...怎么也得有两个实现类吧...

两个实现类是有的啊。一个是真实的View。一个是测试用的View。
0 请登录后投票
   发表时间:2007-05-12  
raimundox 写道
taowen 写道
view是如何得出来的,不是本帖的重点。我当然可以把你所说的两个步骤给隐匿掉。


哎...过程是重要的...没有过程就看出不来哪里做了决策,也就没有办法理解你这里为啥要用mock。如果按我上面列出的过程,看不出有用mock的必要,因此也就不用指责什么了。
个人意见觉得这里你硬说是mock的复杂有点论据不足。

复杂的论据有:
Mockery mockery = new Mockery();  

完全是为了mock框架引入的代码,什么是Mockery?
mockery.checking(new Expectations() {  
            {  
...
            }  
        });  

匿名类加静态构造函数?这是表达何意思?
actionListenerMatcher.fireActionPerformed();  

为什么要去一个Matcher上触发一个事件。Matcher,顾名思义,那是用来检查参数是否匹配的啊。

所以说,你是对的。这里没有必要用mock框架。但是这里确实有必要造一个假的,而不是用真的view来测试。所以这里需要用mock框架之外的办法来造假的。
0 请登录后投票
   发表时间:2007-05-12  
taowen 写道
raimundox 写道
taowen 写道
view是如何得出来的,不是本帖的重点。我当然可以把你所说的两个步骤给隐匿掉。


哎...过程是重要的...没有过程就看出不来哪里做了决策,也就没有办法理解你这里为啥要用mock。如果按我上面列出的过程,看不出有用mock的必要,因此也就不用指责什么了。
个人意见觉得这里你硬说是mock的复杂有点论据不足。

复杂的论据有:
Mockery mockery = new Mockery();  

完全是为了mock框架引入的代码,什么是Mockery?
mockery.checking(new Expectations() {  
            {  
...
            }  
        });  

匿名类加静态构造函数?这是表达何意思?
actionListenerMatcher.fireActionPerformed();  

为什么要去一个Matcher上触发一个事件。Matcher,顾名思义,那是用来检查参数是否匹配的啊。

所以说,你是对的。这里没有必要用mock框架。但是这里确实有必要造一个假的,而不是用真的view来测试。所以这里需要用mock框架之外的办法来造假的。


如果造个假的,问题是这个工作量具体如何呢? 如果是一个简单的仿造监听器注册器的stub,那似乎还可以接受,不过TDD开始的,针对这个需求,或许很多人写出的测试代码都可能如下:

view.clickButton();
assertEquals("hello",view.getFieldText());


不知道view的stub需要迎合多少这样的需求?

0 请登录后投票
   发表时间:2007-05-16  
走路和开车上楼梯,骂车没有人快。。。。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics