我听说过一些我无法与之交谈的人是jmock的忠实粉丝.我已经完成了以测试为中心的开发多年,因此我浏览了网站并查看了一些文档,但仍然无法弄清楚它有多好.
春天我遇到了同样的问题.如果你已经明白它是什么,那么他们的文档会很好地解释它,所以我不认为jmock是没有价值的.我只是不明白它对我有什么影响.
因此,如果jmock为我提供了模拟存根数据的能力,那么让我们举一个如何做事情的例子,看看jmock会更好.
假设我有我的UI层,在创建窗口小部件时创建窗口小部件和窗口小部件服务,初始化窗口小部件并将其中的部分存储在构成窗口小部件所需的三个表中.
当我写测试时,我就是这样做的.
首先,我重新将hibernate指向我的测试高超音速数据库,这样我就不需要做一堆数据库设置了.Hibernate为我创建了我的表.
我的所有测试都有静态工厂方法,为我构建类的测试实例.我的每个DAO都创建指向测试模式的测试版本.然后我的服务类有一个用测试类生成的DAO构造自己的服务类.
现在,当我运行调用服务的UI控制器的测试时,我正在通过应用程序测试我的代码.当然,这不是进行单元测试时通常需要的完全隔离,但在我看来,它为我提供了更好的单元测试,因为它在所有支持层中一直执行实际代码.
因为在休眠状态下Hypersonic运行缓慢,所以我的所有测试都需要稍长的时间,但我的整个构建仍然在不到五分钟的时间内在较旧的计算机上运行以进行完整的构建和打包,所以我觉得这很可接受.
我如何用jmock做不同的事情?
在您的示例中,有两个接口,其中一个将使用模拟框架进行适当的单元测试:
当然,这不是进行单元测试时通常需要的完全隔离,但在我看来,它为我提供了更好的单元测试,因为它在所有支持层中一直执行实际代码.
这似乎是你问题的核心.答案有很多方面:
| 归档时间: |
|
| 查看次数: |
827 次 |
| 最近记录: |