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

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


回首忆惘然
浏览 110回答 1
1回答

皈依舞

您的total函数是否仅用于sum获取数字列表的总和?如果是这样,则您的测试正在执行与被测代码相同的步骤。在这种情况下,第一个测试不会失败。最好使用手动生成的值。(如果total只是 wrap sum,那么我不会花很多时间担心它。该功能已经过彻底测试。)如果Balance.total()通过其他方法(如在数据库上运行的 SQL 查询)获取其值,则可以在测试方法中计算预期值,特别是在对值列表求和等简单情况下。如果计算非常复杂,那么您可能希望回到手动计算的值。否则,您的测试代码可能与被测代码一样难以调试。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python