Тестирование программного обеспечения на качество кода
В этой статье мы поговорим о маркерах и фикстурах, которые помогают вывести методы модульного тестирования на более продвинутый уровень. По мере усложнения кода необходимо сделать модульный тест более надежным и исправить все зависимости основного кода.
Маркер Pytest
Обычно они используются для установки метаданных в функциях модульного тестирования, чтобы pytest имел некоторую дополнительную информацию.
Мы обсудим четыре типа маркеров, как показано ниже:
- Пропустить: этот маркер используется для пропуска определенного метода тестирования путем применения декоратора pytest.
Пример:
# in this example will skip on test import pytest from add_function import addNumbers @pytest.mark.skip def test_num(): assert addNumbers(1,3) == 4 def test_str(): assert addNumbers('x', 'y') == 'xy' # output: test_add.py s. # here s means a test function at 1st position is skipped
2. Skipif: в этом маркере нам нужно указать в декораторе условие, чтобы метод теста пропустился с параметром причины.
Пример:
import pytest import sys from add_function import addNumbers @pytest.mark.skip() def test_num(): assert addNumbers(1,3) == 4 @pytest.mark.skipif(sys.getrefcount('Hello') == (5), reason = "String is equal") def test_str(): assert addNumbers('x', 'y') == 'xy' # output: test_add.py ss # here ss means two test functions are skipped
3. xfail: этот маркер полезен для обработки метода тестирования в случае возникновения исключения.
Пример:
import pytest import sys from add_function import addNumbers @pytest.mark.skip() def test_num(): assert addNumbers(1,3) == 4 def test_num1(): assert addNumbers(1,3) == 3 # E assert 4 == 3 # here E means it raised some Exception # output: # here the first test function is skipped and the second test function is failed # because of exception(E) test_add.py sF # to overcome this Exception error, we use the xfail marker. import pytest import sys from add_function import addNumbers @pytest.mark.skip() def test_num(): assert addNumbers(1,3) == 4…