Python单元测试字典断言KeyError

时间:2016-09-22 13:26:55

标签: python python-unittest

我不知道如何创建Python unittest来检查字典是否返回了KeyError。我认为单元测试会调用字典键,所以它看起来像这样:

def test_dict_keyerror_should_appear(self):
    my_dict = {'hey': 'world'}
    self.assertRaises(KeyError, my_dict['some_key'])

但是,我的测试只会出现 KeyError 而不是断言发生了KeyError。

2 个答案:

答案 0 :(得分:1)

为解决此问题,我使用lambda调用字典键来引发错误。

def test_dict_keyerror_should_appear(self):
    my_dict = {'hey': 'world'}
    self.assertRaises(KeyError, lambda: my_dict['some_key'])

答案 1 :(得分:1)

另一种选择是使用operator.getitem

from operator import getitem

self.assertRaises(KeyError, getitem, my_dict, 'some_key')