我正在使用该@pytest.mark.parametrize
功能使用 pytest 测试多个测试用例。现在我很难理解如何测试我的函数是否KeyError
默认抛出 a,我该如何为它编写测试?
在下面的示例中,transcript
和category
是两个输入参数。category
是关键。
@pytest.mark.parametrize("transcript, category, category_naming_score", [
("orange banana apple", "fruits", 3),
("carrot celery spinach", "vegetables", 3),
("birds cardinals blackbirds crows", "birds", 3),
("", "fruits", 0),
("cardinals", "", pytest.raises(KeyError))])
def test_category_naming_calculate_score(transcript, category, category_naming_score):
assert calculate_score(transcript, category) == category_naming_score
因此,在上面的示例中,第二个参数应该是查找字典的键,默认情况下,KeyError
如果无法找到该键,函数会抛出 a。在最后一个测试用例中,我的函数会抛出错误KeyError: ''
。我不确定如何确保将异常作为 pytest 捕获。