希望能写质量更好的代码。 从功能角度看, 写好的代码能满足要求。原来开发中没有单元测试。基本是手动测试, 集成测试加上联调。最后提交给测试。这样有很大的问题, 代码改动后,需要重新测试, 手动不仅麻烦, 而且耗时。 不测试也有可能简单的修改, 引入了其他的问题。 我希望单元测试能帮助我解决部分问题。
我的学习资料: 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 比较提炼成对照表)
测试和代码
和手动测试相比, 写单元测试要花很多时间。 和实际相比, 单元测试很全面,(漏了再往里面加)。 个人感受上写单元测试很耗时, 但手动测试没有测试这么多的内容, 也更多倾向于做工作测试(再手动弄些异常测试)。 是不是真相了。
如果真想用上单元测试, 我的详细设计没有这么细。
--- 会根据自己的工作情况继续更新
--- 如果有看到的达人给点意见, 我想写质量很好的代码