学习单元测试, 如何在开发过程中把单元测试也做了
2014-05-13 17:44
225 查看
希望能写质量更好的代码。 从功能角度看, 写好的代码能满足要求。原来开发中没有单元测试。基本是手动测试, 集成测试加上联调。最后提交给测试。这样有很大的问题, 代码改动后,需要重新测试, 手动不仅麻烦, 而且耗时。 不测试也有可能简单的修改, 引入了其他的问题。 我希望单元测试能帮助我解决部分问题。
我的学习资料: dive into python 这本书 13/14 章节。
需求和设计
需求: 写两个函数: toRoman, fromRoman, 实现罗马数字和阿拉伯数字转换。 能在无效输入报错. (P261-P262 8个小点)
设计: ( 这是书中没有介绍的。 书中先写测试, 测试代码连出错是什么异常都知道, 应该是设计的比较详细)
1. 用异常出错处理, 不用返回值。定义可能的异常。 [先分两大类, 可以分别细分]
输入不合法
处理过程出错, (应该是运行时错误)
1. 接口 (先这么表示吧)
1. 如何实现
测试和代码
接下来是写代码和单元测试。 书中介绍是先写测试再写代码。 (看到一个好处是代码可以跑跑看, 写对了没)。 我觉得这个太理想。 单元测试代码可能自己也有问题。 具体哪个先写, 个人觉得无所谓。 但一定都有写。 回过头来看, 设计阶段后, 思考测试具体有哪些单元测试(在写代码前)
和手动测试相比, 写单元测试要花很多时间。 和实际相比, 单元测试很全面,(漏了再往里面加)。 个人感受上写单元测试很耗时, 但手动测试没有测试这么多的内容, 也更多倾向于做工作测试(再手动弄些异常测试)。 是不是真相了。
如果真想用上单元测试, 我的详细设计没有这么细。
--- 会根据自己的工作情况继续更新
--- 如果有看到的达人给点意见, 我想写质量很好的代码
我的学习资料: dive into python 这本书 13/14 章节。
需求和设计
需求: 写两个函数: toRoman, fromRoman, 实现罗马数字和阿拉伯数字转换。 能在无效输入报错. (P261-P262 8个小点)
设计: ( 这是书中没有介绍的。 书中先写测试, 测试代码连出错是什么异常都知道, 应该是设计的比较详细)
1. 用异常出错处理, 不用返回值。定义可能的异常。 [先分两大类, 可以分别细分]
输入不合法
处理过程出错, (应该是运行时错误)
1. 接口 (先这么表示吧)
return string toRoman (input int) return int fromRomen (input string)
1. 如何实现
toRoman 按位翻译成字符串 fromRoman 要提取高位字符串, 用字符比较确定当前位的值。 高位字符串: 从开始到第一位的字符出现前 (书中用对照表要简单些, 把我想象中需要用很多if elif 比较提炼成对照表)
测试和代码
接下来是写代码和单元测试。 书中介绍是先写测试再写代码。 (看到一个好处是代码可以跑跑看, 写对了没)。 我觉得这个太理想。 单元测试代码可能自己也有问题。 具体哪个先写, 个人觉得无所谓。 但一定都有写。 回过头来看, 设计阶段后, 思考测试具体有哪些单元测试(在写代码前)
和手动测试相比, 写单元测试要花很多时间。 和实际相比, 单元测试很全面,(漏了再往里面加)。 个人感受上写单元测试很耗时, 但手动测试没有测试这么多的内容, 也更多倾向于做工作测试(再手动弄些异常测试)。 是不是真相了。
如果真想用上单元测试, 我的详细设计没有这么细。
--- 会根据自己的工作情况继续更新
--- 如果有看到的达人给点意见, 我想写质量很好的代码
相关文章推荐
- 促销单审核后怎么修改
- 第十二话。还是上周的胖太,还是原来的味道!一指戳掉你二两肥肉
- 处理QMenu的triggered信号时遇到的一个问题
- 10款AJAX/CSS/HTML的在线表单生成器
- 中国电信翼支付网关接口接入
- AVPlayer
- 图像滤波及质量评价
- run Apache2 in cygwin
- url
- 利用git制作和提交patch
- 几种树的创建
- 自己动手实现Expression翻译器 – Part Ⅲ
- html5实现摇一摇
- Leetcode 树 Binary Tree Level Order Traversal
- python的各种问题
- C++ 容器及选用总结
- Install jar manually into maven and Nexus
- mintty字体设置
- usrpasswd
- cacti安装与配置