我正在使用 Django,我需要编写一个需要计算的测试。 最好的做法是手动计算期望值,还是可以使用求和函数来计算(见下文)
这个例子对我来说更容易,因为我不需要手动计算:
def test_balance(self):
amounts = [120.82, 90.23, 89.32, 193.92]
for amount in amounts:
self.mockedTransaction(amount=amount)
total = Balance.total()
self.assertEqual(total, sum(amounts))
或者在这个例子中我必须手动计算期望值:
def test_balance(self):
self.mockedTransaction(amount=120.82)
self.mockedTransaction(amount=90.23)
self.mockedTransaction(amount=89.32)
self.mockedTransaction(amount=193.92)
total = Balance.total()
self.assertEqual(total, 494.29)
最佳答案
您的 total
函数是否只使用 sum
来获取数字列表的总和?如果是这样,您的测试将执行与被测代码相同的步骤。在那种情况下,第一个测试不能失败。最好使用手动生成的值。 (不过,如果 total
只是包装 sum
,那么我就不会花很多时间担心它了。该功能已经过全面测试。)
如果 Balance.total()
是通过其他方法(例如在数据库上运行的 SQL 查询)获取其值的,那么可以在您的测试方法中计算预期值,尤其是在简单的情况,例如对值列表求和。如果计算非常复杂,那么您可能想要返回到手动计算的值。否则,您的测试代码可能与被测代码一样难以调试。
关于python - 用手工计算还是程序计算来测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53050918/