Я использую функциональность @pytest.mark.parametrize
для тестирования нескольких тестовых случаев с использованием pytest. Теперь мне трудно понять, как мне проверить, выдает ли моя функция KeyError
по умолчанию, как мне написать для нее тест?
В приведенном ниже примере 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
, если не может найти ключ. В последнем тесте моя функция выдаст ошибку KeyError: ''
. Я не уверен, как удостовериться, что я ловлю это исключение как pytest.