Как выполнить модульное тестирование вложенной функции с помощью PyTest без изменения внешней функцииPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как выполнить модульное тестирование вложенной функции с помощью PyTest без изменения внешней функции

Сообщение Anonymous »

У меня есть функция Python, содержащая вложенную функцию. Я хочу написать модульные тесты для вложенной функции с помощью PyTest, но не хочу изменять способ определения вложенной функции или ее поведение. Я также не хочу вызывать или тестировать саму внешнюю функцию, а только вложенную функцию.
Вот упрощенный пример моего кода:

Код: Выделить всё

# example.py

def outer_function(a, b):
"""
Example outer function that performs some operations.
"""
def inner_function(x, y):
"""
Nested function that I want to test.
"""
return x + y

# Some operations using inner_function
result = inner_function(a, b)
return result
Я хочу создать тестовую функцию PyTest, которая проверяет только внутреннюю_функцию с использованием параметризации, гарантируя, что она охватывает различные сценарии, такие как:
  • Сложение двух положительных чисел
  • Сложение положительных и отрицательных чисел
  • Сложение двух отрицательных чисел
    < li>Добавление нуля к числу
Как этого добиться, чтобы тесты были независимыми от external_function?
Пример тестовой функции:

Код: Выделить всё

# test_example.py

import pytest

@pytest.mark.parametrize("x, y, expected", [
(1, 2, 3),         # Adding two positive numbers
(1, -1, 0),        # Adding positive and negative numbers
(-1, -2, -3),      # Adding two negative numbers
(0, 5, 5),         # Adding zero to a number
(3, 0, 3)          # Adding a number to zero
])
def test_inner_function(x, y, expected):
"""
Describe how to test the inner_function here.
"""
# Code to test inner_function goes here.
Будем очень признательны за любые рекомендации или примеры того, как правильно структурировать и реализовать эти тесты!


Подробнее здесь: https://stackoverflow.com/questions/788 ... outer-func
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»