小编Chr*_*sch的帖子

测试自定义异常的引发时出错(使用assertRaises())

我正在为python项目创建测试.正常的测试工作正常,但我想测试在某种情况下我的函数是否会引发一个自定义的异常.因此我想使用assertRaises(Exception,Function).有任何想法吗?

引发异常的函数是:

def connect(comp1, comp2):
    if comp1 == comp2:
        raise e.InvalidConnectionError(comp1, comp2)
    ...
Run Code Online (Sandbox Code Playgroud)

例外是:

class InvalidConnectionError(Exception):
    def __init__(self, connection1, connection2):
        self._connection1 = connection1
        self._connection2 = connection2

    def __str__(self):
        string = '...'
        return string
Run Code Online (Sandbox Code Playgroud)

测试方法如下:

class TestConnections(u.TestCase):
    def test_connect_error(self):
        comp = c.PowerConsumer('Bus', True, 1000)
        self.assertRaises(e.InvalidConnectionError, c.connect(comp, comp))
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Error
Traceback (most recent call last):
File "C:\Users\t5ycxK\PycharmProjects\ElectricPowerDesign\test_component.py", line 190, in test_connect_error
self.assertRaises(e.InvalidConnectionError, c.connect(comp, comp))
File "C:\Users\t5ycxK\PycharmProjects\ElectricPowerDesign\component.py", line 428, in connect
raise e.InvalidConnectionError(comp1, comp2)
InvalidConnectionError: <unprintable InvalidConnectionError object>
Run Code Online (Sandbox Code Playgroud)

python exception

1
推荐指数
1
解决办法
122
查看次数

标签 统计

exception ×1

python ×1