【发布时间】:2010-10-25 03:47:12
【问题描述】:
我知道similar questions 之前有人问过,但他们并没有我正在寻找的信息——我不是在问如何生成单元测试的机制,而是问这是否是个好主意。
我用 Python 编写了一个模块,其中包含表示物理常数和测量单位的对象。许多单位是通过向基本单位添加前缀来形成的 - 例如。从m 我得到cm、dm、mm、hm、um、nm、pm 等。对于s、@987653321@、@987653331@ 等也是如此@ 等。当然,我已经编写了一个函数来执行此操作,因为最终结果是超过 1000 个单独的单元,手动将它们全部写出来会很痛苦;-) 它的工作原理是这样的(不是实际的代码):
def add_unit(name, value):
globals()[name] = value
for pfx, multiplier in prefixes:
globals()[pfx + name] = multiplier * value
add_unit('m', <definition of a meter>)
add_unit('g', <definition of a gram>)
add_unit('s', <definition of a second>)
# etc.
当我想为这些单元(没有双关语)编写单元测试时,问题就出现了,以确保它们都具有正确的值。如果我编写的代码分别为每个单元自动生成一个测试用例,那么单元生成函数中的任何问题都可能会出现在测试生成函数中。但是考虑到替代方案(手动写出所有 1000 多个测试),我是否应该继续编写测试生成函数,非常仔细地检查它并希望它能正常工作?或者我应该只测试一系列单位(m、cm、dm、km、nm、um 以及所有其他米的倍数),足以使确定单位生成功能似乎正在工作?还是别的什么?
【问题讨论】:
标签: python unit-testing code-generation