【问题标题】:Best practice: assert methods' argument positioning最佳实践:断言方法的参数定位
【发布时间】:2019-08-26 18:05:37
【问题描述】:

来自文档

assertEqual(first, second, msg=None) 测试第一个和第二个是否相等。如果值比较不相等,则测试将失败。

对于firstsecond,预期值和实际值应该是多少?

【问题讨论】:

  • 没关系。这是一个相等表达式'abc' == 'abc' 是相同的(True),无论您是否反向执行表达式。 'abc' == 'def'False,无论顺序如何。话虽如此,我通常把实际放在第一位,然后是预期,但那是 100% 的偏好。
  • 您的问题太宽泛了,对于任何给定的情况,您都会期望得到结果,并且需要断言实际值就是您所期望的。
  • @Error-SyntacticalRemorse 非常感谢。我想知道有没有标准。现在我知道这只是一种偏好。
  • @Trenton_M 这个问题不是重复的。另一个问题是关于断言语句,我的问题是关于 python unittest 框架中的断言方法(也要求最佳实践而不是用法)。

标签: python python-unittest


【解决方案1】:

即使答案和 cmets 暗示不同,也有实际的最佳实践保持一致!

因此,选择一个排序(例如,您的硬编码/夹具值是第一个)并在其余代码中坚持该排序。

【讨论】:

    【解决方案2】:

    assertEqual 本身并不关心:

    ======================================================================
    FAIL: test_foo (foo.TestFoo)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "/private/tmp/foo.py", line 6, in test_foo
        self.assertEqual("actual string", "expected string")
    AssertionError: 'actual string' != 'expected string'
    - actual string
    + expected string
    

    【讨论】:

      猜你喜欢
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多