Python tests, parametrize

06 березня 2019 р.

Функція, яку ми хочемо протестувати, може мати декілька варіантів вихідних даних. Можна написати по окремій тест-функції для кожного кейсу, а можна застосувати декоратор @pytest.mark.parametrize 

Наприклад функція get_color(value) може повернути наступні значення: "black", "white", "red", "green". Всі ці кейси покриваємо в одній тест-функції:

    def get_color(value):
      colors = {
        1: 'black',
        2: 'white',
        3: 'red',
        4: 'green',
      }
      return colors.get(value, 'blue')
    @pytest.mark.parametrize('value, result', [
      (1, 'black'),
      (2, 'white'),
      (3, 'red'),
      (4, 'green'),
      (10, 'blue'),
      (55, 'blue'),
    ])
    def test_get_color(value, result):
      expected = get_color(value)
      assert expected == result

Інші дописи

Python tests, parametrize

Як виконати декілька тестів в одній фнкції.

Термінал terminator + fzf search

Альтернативний темінал для Linux плюс корисні інструменти до нього