我在Python中使用unittest进行一些测试。我有一个简单的测试:
self.assertEqual(stdout, expected_stdout)
实际上只检查两个字符串的相等性。
当我运行它时,我得到AssertionError
,这很好,但我不确定它下面的+/-是什么意思。示例:
FAIL: unittest.case.FunctionTestCase (basic_test4)
actually pretty irrelevant
----------------------------------------------------------------------
Traceback (most recent call last):
File "/h/u16/c4/00/chenjoh6/csc209_advance_prep_ta/209-materials/assignments/a2/file-archive/20179/testing/a2_fs.py", line 33, in inner_meth_
simple_test(["asd"], tc.dict_of_tests[name][1], tc.dict_of_tests[name][2] ,tc.dict_of_tests[name][0])(tfs)
File "/h/u16/c4/00/chenjoh6/csc209_advance_prep_ta/209-materials/autotesting/20179/test_helpers.py", line 111, in _t
self.assertEqual(stderr, expected_stderr)
AssertionError: 'or is it here(null)This is problemjohn\njohn: Success\n' != 'or is it here(null)john: Success\n'
+ or is it here(null)john: Success
- or is it here(null)This is problemjohn
- john: Success
(!=左边的第一部分是实际输出,!=右边的第二部分是预期的)。
任何人都可以帮我理解如何阅读+/-?感谢
答案 0 :(得分:1)
这是两个字符串的线差比较,用于将左手侧改为右手侧。 +
表示您必须添加第or is it here(null)john: Success
行,-
表示删除第or is it here(null) this is problemjohn
行和john: Success
行。
由于左侧仅包含两条线被移除,而右侧仅包含添加的一条线,因此这应该是有意义的。在这种情况下,差异并不是非常有用,但如果线条有更多共同点,那么差异将有助于缩小失败的原因。