是assertEqual(actual, expected)
还是assertEqual(expected, actual)
?
一方面,我看到很多代码使用assertEqual(actual, expected)
。其中包括examples in the unittest docs和examples in the Django docs。
但是,此测试assertEqual('foo', 'bar')
正在为我提供输出
- foo
+ bar
这恰好与使用assertEquals( 'foo', 'bar' );
-'foo'
+'bar'
PHPUnit的第一个参数为$expected
,后跟$actual
。这种差异也是我对expected, actual
所期望的。
所有这些Python代码我都看错了吗?
我检查了unittest方法的定义,尽管它有非常有用的first, second
参数名称。
答案 0 :(得分:3)
根据assertEqual
文件:
测试第一和第二是否相等。如果值不相等,则测试将失败。
因此,您可以将预期和实际放在任何地方,它将返回相同的结果。但通常的做法是使用实际结果作为第一个参数,期望结果作为第二个参数。它也在Python 3's Unittest Example中得到证明:
s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
答案 1 :(得分:1)
我通常使用assertEqual(expected, actual)
,因为输出消息更有意义。
代码:
from unittest import TestCase
class TestClass(TestCase):
def test_equal(self):
expected = 1
actual = 2
self.assertEqual(expected, actual)
输出:
2 != 1
Expected :1
Actual :2
如果顺序相反,则消息将错误地显示:
Expected :2
Actual :1