使用手动计算还是程序计算进行测试?

时间:2018-10-29 17:34:23

标签: python django testing

我正在使用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)

1 个答案:

答案 0 :(得分:1)

您的total函数是否仅使用sum来获取数字列表的总和?如果是这样,则您的测试执行与被测代码相同的步骤。在这种情况下,第一个测试不会失败。最好使用手动生成的值。 (但是,如果total仅包装了sum,那么我就不会花很多时间担心它。该功能已经过全面测试。)

如果Balance.total()通过其他方法(例如在数据库上运行的SQL查询)获取其值,则可以在测试方法中计算期望值,特别是在简单的情况下,例如对列表的求和价值观。如果计算非常复杂,那么您可能想回到手动计算的值。否则,您的测试代码可能与被测代码一样难以调试。