gpt4 book ai didi

Python Unittest - assertRaises 的意外使用?

转载 作者:太空宇宙 更新时间:2023-11-04 07:07:18 24 4
gpt4 key购买 nike

我想知道是否有办法做到以下几点:

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 .

关于Python Unittest - assertRaises 的意外使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35436790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com