TDD с python - PullRequest
       0

TDD с python

0 голосов
/ 02 февраля 2020

Мне нужна небольшая помощь, ребята, я делаю проект для школы и сталкиваюсь с проблемой с моим кодом. Не уверен, где я иду не так. Вот немного о проекте.

Требования: Напишите функцию с именем generate_prime_factors в модуле prime.py. Эта функция будет принимать целое число в качестве аргумента и возвращать список целых чисел.

Шаг 1. Напишите тест, который утверждает, что при вызове generate_prime_factors с типом данных, который не является целым числом (например, строка или float), ValueError повышается. Напишите соответствующий код для решения этой проблемы и затем передайте изменения.

Шаг 2: Напишите тест, который утверждает, что при вызове generate_prime_factors с 1 возвращается пустой список. Решите и подтвердите.

Шаг 3: Напишите тест, который утверждает, что при вызове generate_prime_factors с 2 возвращается список [2]. Решить и зафиксировать.

et c .....

это мой главный штрих.py:

    """
    generate prime factors fuctions
    """
    if user_input == 1:
        return prime_factors
    if user_input == 2:
        return prime_factors
    if isinstance(user_input, str):
        raise ValueError
    return prime_factors

и вот мой тест python скрипт:

import pytest
from prime import generate_prime_factors # Imports the prime module (prime.py)

def test_not_integer():
    """
    A test that asserts that when `generate_prime_factors` is called with a
    data type that is not an integer (e.g. a string or float), a ValueError is
    raised.
    """
    prime_factors = []
    with pytest.raises(ValueError):
        generate_prime_factors('Hello World', prime_factors)

def test_generate_prime_factor_1():
    """
    A test that asserts that when `generate_prime_factors` is called with
    `1`, an empty list is returned.
    """
    prime_factors = []
    generate_prime_factors(1, prime_factors)
    assert prime_factors == []

def test_generate_prime_factor_2():
    """
    a test that asserts that when `generate_prime_factors` is called with
    `2`, the list `[2]` is returned.
    """
    prime_factors = []
    generate_prime_factors(2, prime_factors)
    assert prime_factors == [2]

enter image description here

, как вы можете видеть на изображении. Я продолжаю получать ошибку Pytest, кажется, происходит от def test_generate_prime_factors_2 (): метод, как вы можете видеть из изображения два прохода и 1 сбой

1 Ответ

2 голосов
/ 02 февраля 2020

В вашей функции вы возвращаете prime_factors.

Но в вашем тесте вы не используете это возвращаемое значение.

Ваше значение prime_factor в вашем тесте никогда не присваивается, поэтому это остается пустым списком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...