我创建的一个类接受一个变量来表示三维空间中的一个点,例如point = [x, y, z]
,我检查该点的长度是否正确,以确保它是三维的,如果不是,则抛出一个错误:
if len(point) != 3:
raise ValueError(f"Point: {point}, is not 3D.")
我目前正在测试这个类,当我故意传递一个2D点:point = [1, 1]
时,我得到一个错误字符串:
"Point: [1, 1], is not 3D."
但当我使用以下方法进行比较时:
self.assertRaisesRegex(
ValueError, "Point: [1, 1], is not 3D.",
edits.Cut, 'p', [1, 1], plane=[1, 1, 1])
我得到一个断言错误异常:
AssertionError: "Point: [1, 1], is not 3D." does not match "Point: [1, 1], is not 3D."
这对我来说似乎很奇怪,因为弦是完全一样的。我将f字符串与assertRaiseRegex(...)
之外的预期字符串进行了比较,并确认它们是相同的
似乎f字符串与此无关,即使我将错误返回字符串写为:raise ValueError("Point: [1, 1], is not 3D.")
,仍然会得到相同的错误。这与UnitTest处理字符串中类似列表的格式有关吗
目前没有回答
相关问题 更多 >
编程相关推荐