@smelya999

Как правильно вывести класс и реализовать метод?

Реализовать класс TestCase, в котором будут:
Конструктор, внутри которого устанавливаются атрибуты:
id тест-кейса — рандомное трёхзначное число;
name название тест-кейса — передаётся при создании объекта TestCase;
steps — словарь, куда будут добавляться шаги тест-кейса;
result — ожидаемый результат тест-кейса.

Метод set_step — добавляет в словарь steps шаг тест-кейса. Принимает два параметра: step_number и step_text. Ключ — это step_number (номер шага), а значение — step_text (текстовое описание шага).
Метод delete_step — удаляет шаг из steps по переданному в метод ключу step_number.
Метод get_steps — возвращает текущий список шагов.
Метод set_result — устанавливает ожидаемый результат в атрибут result по переданному параметру result.
Метод get_test_case — печатает текущее состояние тест-кейса.
Пример вывода метода get_test_case:
{
    'id': 988, 
    'Название': 'Добавление товара в корзину', 
    'Шаги': {
            1: 'Перейти на сайт', 
            2: 'Перейти в раздел Товары', 
            3: 'Нажать кнопку «В корзину» у первого товара'
    }, 
    'Ожидаемый результат': 'Товар окажется в корзине'
}
  • Вопрос задан
  • 291 просмотр
Пригласить эксперта
Ответы на вопрос 1
shabelski89
@shabelski89
engineer
from random import randint
from json import JSONEncoder


class TestCase:
    def __init__(self, name: str):
        self.id = randint(0, 999)
        self.name = name
        self.steps = dict()
        self.result = str()

    def set_step(self, step_number: int, step_text: str):
        self.steps[step_number] = step_text

    def delete_step(self, step_number: int):
        if self.steps.get(step_number) is not None:
            self.steps.pop(step_number)

    def get_steps(self) -> dict:
        return self.steps

    def set_result(self, result: str):
        self.result = result

    def get_test_case(self):
        current_result = TestCaseEncoder(ensure_ascii=False, indent=4).encode(self)
        print(current_result)
        return current_result


class TestCaseEncoder(JSONEncoder):
    def default(self, o):
        json_object = {
            'id': o.__dict__.get('id'),
            'Название': o.__dict__.get('name'),
            'Шаги': o.__dict__.get('steps'),
            'Ожидаемый результат': o.__dict__.get('result')
        }
        return json_object


t = TestCase(name="Test")
t.set_step(1, 'Перейти на сайт')
t.set_step(2, 'Перейти в раздел Товары')
t.set_step(3, 'Нажать кнопку «В корзину» у первого товара')
t.set_result(result='Товар окажется в корзине')
t.get_test_case()

t.delete_step(2)
t.get_test_case()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы