我想知道是否有办法做到以下几点:
class Test_Vector_test(unittest.TestCase):
def test_add(self):
vector1 = Vector(2,2,2)
scalar = 1
self.assertRaises(NotImplementedError, vector1+scalar)
此测试失败,错误代码如下:
Traceback (most recent call last):
File "/Users/sahandz/Documents/School/Programmeringsteknik och Matlab/dd1315pylab3-master/test/test_Vector.py", line 14, in test_add
self.assertRaises(NotImplementedError, vector1+scalar)
File "/Users/sahandz/Documents/School/Programmeringsteknik och Matlab/dd1315pylab3-master/lab/Vector.py", line 17, in __add__
raise NotImplementedError
NotImplementedError
----------------------------------------------------------------------
Ran 3 tests in 0.007s
FAILED (errors=1)
即使您可以看到它实际上引发了错误。如何在不使用vector1.__add__ 方法的情况下实现所需的功能(检查vector1+scalar 是否引发NotImplementedError)?
请您参考如下方法:
assertRaises 等待可调用的东西,然后将引发错误。 vector1+scalar 在 函数 assertRaises 执行之前进行评估。使用函数、lambda 或 with:
with self.assertRaises(SomeException):
do_something()
另见 the documentation .
