pytest 中实际和预期的正确顺序是什么?

Jos*_*Fox 16 python pytest python-unittest

这个问题给出了 order assertEqual(expected, actual),尽管是 unittest 包。

但是 Pycharm 和 pytest 会根据 order 打印出“Expected:...”和“Actual...” actual==expected

这令人困惑。pytest 的正确顺序是什么?源代码和在线文档就不说了。

(我还注意到 JUnit 和 TestNG 不同意这一点。)

Ada*_*hes 12

JUnit

assertEquals(expected, actual)
Run Code Online (Sandbox Code Playgroud)

pytest

assert actual == expected
Run Code Online (Sandbox Code Playgroud)

例如:

def test_actual_expected():
    expected = 4
    actual = 2+1
    assert actual == expected
Run Code Online (Sandbox Code Playgroud)

将失败并显示消息

在此处输入图片说明


小智 10

BDFL 不喜欢实际/预期的术语,并且专门更改了文档以解决此问题。

如果您的工具期望按特定顺序进行参数,那么我认为最正确的做法是始终如一地做适合您的工具的工作。

  • 我不明白这一点。如果 pytest 试图做到不可知,那么为什么我的答案中显示的 pytest 失败消息中清楚地打印了“预期”和“实际”? (7认同)
  • 这是 pycharm,不是 pytest (4认同)