我想知道是否有办法做到以下几点:
class Test_Vector_test(unittest.TestCase):
def test_add(self):
vector1 = Vector(2,2,2)
scalar = 1
self.assertRaises(NotImplementedError, vector1+scalar)
Run Code Online (Sandbox Code Playgroud)
此测试失败,出现以下错误代码:
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)
Run Code Online (Sandbox Code Playgroud)
即使你可以看到它实际上引起了错误.如何在不使用方法的情况下达到所需的功能(检查是否vector1+scalar引发NotImplementedError)?vector1.__add__
assertRaises等待可调用的东西然后会引发错误.在函数执行之前vector1+scalar评估.使用函数,lambda或:assertRaiseswith
with self.assertRaises(SomeException):
do_something()
Run Code Online (Sandbox Code Playgroud)
另请参阅文档.
| 归档时间: |
|
| 查看次数: |
778 次 |
| 最近记录: |