锁定老帖子 主题:JUnit测试的粒度问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-03-19
引用 我把这个情况更加具体的说明一下。设想有一个系统,他有两个功能: 1、操作员在前台界面上输入客户的资料; 2、经理在后台界面上查询客户的资料。 经理要看的并不是简单的客户的资料。客户有很多笔交易,每笔交易都有金额,每笔交易都有期望的利润率。经理要看我这个月准备从每个户赚多少的钱的Report。 如何做UT? |
|
返回顶楼 | |
发表时间:2007-03-20
run_xiao 写道 经理要看的并不是简单的客户的资料。客户有很多笔交易,每笔交易都有金额,每笔交易都有期望的利润率。经理要看我这个月准备从每个户赚多少的钱的Report。
如何做UT? 这不是UT应该怎样写的问题,而是设计应该是什么样。我对你所说的业务不了解,暂且按照我心目中的设计写一个UT: 首先为这个“客户”建立一个“交易”; 为这个“交易”设定参数:时间、地点、人物、“项目”、“成交价”…… “交易”“执行”; Assert(“客户”的“交易历史”上出现这笔“交易”); Assert(“交易”的“金额”符合刚才设定的参数); Assert(“交易”的“利润率”符合刚才设定的参数); Assert(从“客户”身上赚的钱符合刚才设定的参数); Assert(经理希望看见的“Report”上面的数据符合刚才设定的参数); |
|
返回顶楼 | |
发表时间:2007-03-22
重构,让它易于测试.这就是单元测试的反馈的一个非常重要的优点.实际上也许你的对象已经是一个GOD CLASS了,遵循单一职责.
还是那句话,重构,让它易于测试. |
|
返回顶楼 | |
发表时间:2007-03-22
仔细阅读《敏捷软件开发》,会找到一些你要的东西!
|
|
返回顶楼 | |
发表时间:2007-07-09
最近又考虑了一下该问题,
UT应该是对接口的实现做白盒测试 若接口的实现巨复杂,那就要Refactor,将其职责分担到其他的Class, 这样再对其他Class作UT |
|
返回顶楼 | |
发表时间:2007-07-19
主要是层次的清晰
单讨论测试没有多大意义 |
|
返回顶楼 | |
发表时间:2007-08-08
allentemplar 写道 主要是层次的清晰
单讨论测试没有多大意义 我赞同这个观点。 |
|
返回顶楼 | |
发表时间:2007-08-08
allentemplar 写道 主要是层次的清晰
单讨论测试没有多大意义 没错,有了松耦合的设计,单元测试自然不成问题。 |
|
返回顶楼 | |