为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

回首忆惘然 2021-07-26 16:44:41
我正在使用 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 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

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

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


查看完整回答
反对 回复 2021-08-03
  • 1 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信