Модульное тестирование с использованием pytest в Python - PullRequest
0 голосов
/ 06 апреля 2020

Определите тестовый класс pytest «TestingInventoryCreation», который тестирует поведение метода « init » с помощью следующих тестов:

Определите тестовый метод pytest «test_creating_empty_inventory», который создает пустой инвентарь и проверяет, является ли его 'balance_inventory' пустым диктом.

Определите метод тестирования pytest 'test_creating_specified_inventory', который создает экземпляр инвентаря с вводом {'iPhone Модель X': 100, 'Модель Xiaomi Y ': 1000,' Nokia Model Z ': 25}.

Определите метод тестирования pytest' test_creating_inventory_with_list ', который проверяет, вызывает ли метод' init 'ошибку TypeError с сообщением " В качестве входных данных должен использоваться словарь "когда список" ['iPhone Model X', 'Xiaomi Model Y', 'Nokia Model Z'] "передается в качестве входных данных.

Определение метода тестирования pytest ' test_creating_inventory_with_numeric_keys ', который проверяет, вызывает ли метод' init 'ValueError с сообщением "Имя мобильной модели должно быть строкой", когда d ict {1: 'iPhone Model X', 2: 'Xiaomi Model Y', 3: 'Nokia Model Z'} передается в качестве ввода.

Определить метод тестирования pytest 'test_creating_inventory_with_nonnumeric_values', который проверяет если метод ' init ' вызывает ошибку ValueError с сообщением "Нет. мобильных телефонов должно быть положительным целым числом ", когда в качестве входных данных передается dict {'iPhone Model X': '100', 'Xiaomi Model Y': '1000', 'Nokia Model Z': '25'}.

Определить метод тестирования pytest 'test_creating_inventory_with_negative_value', который проверяет, вызывает ли метод ' init ' ValueError с сообщением "No. мобильных телефонов должно быть положительным целым числом ", когда в качестве входных данных передается dict {'iPhone Model X': - 45," Xiaomi Model Y ": 200," Nokia Model Z ": 25}.

1 Ответ

0 голосов
/ 07 апреля 2020
from proj.inventory import MobileInventory, InsufficientException
import pytest

class TestingInventoryCreation():

    def test_creating_empty_inventory(self):
        c1 = MobileInventory()
        assert c1.balance_inventory == None

    def test_creating_specified_inventory(self):
        c2 = MobileInventory({'iPhone Model X':100, 'Xiaomi Model Y': 1000, 'Nokia Model Z':25})
        assert c2.balance_inventory == {'iPhone Model X':100, 'Xiaomi Model Y': 1000, 'Nokia Model Z':25}
        #{'iPhone Model X':100, 'Xiaomi Model Y': 1000, 'Nokia Model Z':25}

    def test_creating_inventory_with_list(self):
        #c3 = MobileInventory(['iPhone Model X', 'Xiaomi Model Y', 'Nokia Model Z'])
        with pytest.raises(InsufficientException) :
            c3 = MobileInventory(['iPhone Model X', 'Xiaomi Model Y', 'Nokia Model Z'])


    def test_creating_inventory_with_numeric_keys(self):
        #c4 = MobileInventory({1:'iPhone Model X', 2:'Xiaomi Model Y', 3:'Nokia Model Z'})
        with pytest.raises(InsufficientException):
            c4 = MobileInventory({1:'iPhone Model X', 2:'Xiaomi Model Y', 3:'Nokia Model Z'})


    def test_creating_inventory_with_nonnumeric_values(self):
        #c5 = MobileInventory({'iPhone Model X':'100', 'Xiaomi Model Y': '1000', 'Nokia Model Z':'25'})
        with pytest.raises(InsufficientException):
            c5 = MobileInventory({'iPhone Model X':'100', 'Xiaomi Model Y': '1000', 'Nokia Model Z':'25'})


    def test_creating_inventory_with_negative_value(self):
        #c6 = MobileInventory({'iPhone Model X':-45, 'Xiaomi Model Y': 200, 'Nokia Model Z':25})
        with pytest.raises(InsufficientException) :
            c6 = MobileInventory({'iPhone Model X':-45, 'Xiaomi Model Y': 200, 'Nokia Model Z':25})

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