我正在使用Django,我需要编写一个需要计算的测试。 最好是手动计算期望值的最佳实践,还是可以使用sum函数(请参见下文)进行计算
这个示例对我来说比较容易,因为我不必手动计算:
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)
答案 0 :(得分:1)
您的total
函数是否仅使用sum
来获取数字列表的总和?如果是这样,则您的测试执行与被测代码相同的步骤。在这种情况下,第一个测试不会失败。最好使用手动生成的值。 (但是,如果total
仅包装了sum
,那么我就不会花很多时间担心它。该功能已经过全面测试。)
如果Balance.total()
通过其他方法(例如在数据库上运行的SQL查询)获取其值,则可以在测试方法中计算期望值,特别是在简单的情况下,例如对列表的求和价值观。如果计算非常复杂,那么您可能想回到手动计算的值。否则,您的测试代码可能与被测代码一样难以调试。