Python单元测试字典断言键错误

Python单元测试字典断言键错误,python,python-unittest,Python,Python Unittest,我不知道如何创建一个Python单元测试来检查字典是否返回了一个KeyError。我以为单元测试会调用dictionary键,所以它看起来是这样的: def test_dict_keyerror_should_appear(self): my_dict = {'hey': 'world'} self.assertRaises(KeyError, my_dict['some_key']) 然而,我的测试只会用一个keyrerror出错,而不是断言发生了一个keyrerror。为了

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

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

然而,我的测试只会用一个keyrerror出错,而不是断言发生了一个keyrerror。

为了解决这个问题,我使用了一个
lambda
调用字典键来引发错误

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

另一种选择是使用:

看起来像个傻瓜
from operator import getitem

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