罗马数字转换函数的测试、调试、需求变更与性能优化
一、测试通过与停止编码
在开发罗马数字转换函数时,我们进行了全面的单元测试。其中,不良输入测试都通过了,例如畸形前导测试会检查像“MCMC”这样的情况,由于它不匹配正则表达式, fromRoman 函数会抛出 InvalidRomanNumeralError 异常,这正是该测试用例所期望的结果,所以测试通过。当所有测试都通过时, unittest 模块会输出“OK”,此时就应该停止编码。
二、处理代码中的 Bug
2.1 Bug 发现
尽管我们努力编写全面的单元测试,但 Bug 仍可能出现。例如,当输入为空字符串时, roman5.fromRoman("") 返回了 0,这是一个 Bug,因为我们期望空字符串像其他无效的罗马数字序列一样,抛出 InvalidRomanNumeralError 异常。
2.2 编写测试用例
在重现 Bug 后,我们需要编写一个失败的测试用例来明确 Bug。以下是测试代码示例(romantest61.py):
import unittest
import roman
class FromRomanBadInput(unittest.TestCase):
def testBlank(self):
"""fromRoman should fail with blank string
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



