python pytest中actual和expected的正确顺序是什么?

wnavrhmk  于 2023-10-14  发布在  Python
关注(0)|答案(3)|浏览(148)

这个question给出了assertEqual(expected, actual)的顺序,尽管是针对unittest包。
但是Pycharm,使用pytest,根据actual==expected的顺序打印出“Expected:...”和“Actual...”。
这太令人困惑了pytest的正确顺序是什么?源代码和在线文档没有说。
(我还注意到JUnit和TestNG在这一点上不一致。

7z5jn7bk

7z5jn7bk1#

JUnit

assertEquals(expected, actual)

Pytest(Pycharm)

评论暗示这可能是PyCharm显示消息的方式比pytest本身更有问题-即。此消息可能不存在于PyCharm之外...

assert actual == expected

举例来说:

def test_actual_expected():
    expected = 4
    actual = 2+1
    assert actual == expected

将失败并显示消息

sdnqo3pr

sdnqo3pr2#

BDFL不喜欢actual/expected terminology,文档是specifically changed来解决这个问题。
如果您的工具希望参数按照一定的顺序排列,那么我认为最正确的做法是始终执行对您的工具有效的操作。

jtoj6r0c

jtoj6r0c3#

PyCharm设置中有一个选项用于选择顺序。
它位于“高级设置”部分,名为“交换Pytest中实际和预期Assert的顺序”。不幸的是,它是默认选中的(可能是由于某些历史原因),因此会给出默认生成的误导性显示。

相关问题