Пятница, 24 апреля, 2026
Digital 2 - Цифровая реальность
  • Главная
  • Новости
    Промокоды: как находить, проверять и использовать для максимальной выгоды

    Промокоды: как находить, проверять и использовать для максимальной выгоды

    Контекстная реклама: как работает, зачем нужна и как настроить эффективную кампанию

    Контекстная реклама: как работает, зачем нужна и как настроить эффективную кампанию

    Услуги антихром: что это, зачем нужны и как выбрать исполнителя

    Услуги антихром: что это, зачем нужны и как выбрать исполнителя

    Порожки для пола: виды, назначение и тонкости выбора

    Порожки для пола: виды, назначение и тонкости выбора

    Установка автоматических систем газового пожаротушения

    Установка автоматических систем газового пожаротушения

    WhatsApp Business API: возможности и преимущества для вашего бизнеса

    WhatsApp Business API: возможности и преимущества для вашего бизнеса

    Чистые помещения под ключ для производства: комплексный подход

    Чистые помещения под ключ для производства: комплексный подход

    Как использовать промокод в Lamoda

    Как использовать промокод в Lamoda

    Автоматизация ключевых процессов в бухгалтерии с помощью 1С: Бухгалтерия 8

    Автоматизация ключевых процессов в бухгалтерии с помощью 1С: Бухгалтерия 8

  • VR-Новости
    Подключение виртуальной АТС: пошаговая инструкция для бизнеса

    Подключение виртуальной АТС: пошаговая инструкция для бизнеса

    Криптовалюта для начинающих: полное руководство, биржи и тренды

    Криптовалюта для начинающих: полное руководство, биржи и тренды

    Прибыльность майнинга в 2026 году: честный разбор с цифрами

    Прибыльность майнинга в 2026 году: честный разбор с цифрами

    Пополнение Apple ID: все способы и полезные советы

    Пополнение Apple ID: все способы и полезные советы

    Продвижение сайтов: полный гид по SEO и интернет-маркетингу в 2026 году

    Продвижение сайтов: полный гид по SEO и интернет-маркетингу в 2026 году

    Лучшие гемблинг-партнёрки: как выбрать, заработать и избежать мошенничества

    Лучшие гемблинг-партнёрки: как выбрать, заработать и избежать мошенничества

    UI-дизайн сайта в Figma: от идеи до готового макета

    UI-дизайн сайта в Figma: от идеи до готового макета

    CRM для застройщиков: как девелоперу автоматизировать продажи

    CRM для застройщиков: как девелоперу автоматизировать продажи

    PGLens: корпоративный мониторинг и управление PostgreSQL

    PGLens: корпоративный мониторинг и управление PostgreSQL

  • Обучение
    • Все
    • Программирование
    • Профессии IT
    1С: возможности, применение и особенности платформы

    1С: возможности, применение и особенности платформы

    ChatGPT: архитектура, возможности и влияние на современное общество

    ChatGPT: архитектура, возможности и влияние на современное общество

    Внедрение ИИ в бизнес под ключ: цифровые решения от Secret Agents

    Внедрение ИИ в бизнес под ключ: цифровые решения от Secret Agents

    Как выбрать ноутбук

    Как выбрать ноутбук

    SEO-продвижение сайта: основы и эффективные стратегии

    SEO-продвижение сайта: основы и эффективные стратегии

    Зачем вашей компании IT-аутсорсинг: скрытые преимущества и прямая выгода

    Создание сайта на заказ: ваш цифровой фундамент для успешного бизнеса

    Создание сайта на заказ: ваш цифровой фундамент для успешного бизнеса

    Принцип работы современного языкового помощника

    Принцип работы современного языкового помощника

    Как делается оцифровка кино-видео-фото материалов

    Как делается оцифровка кино-видео-фото материалов

  • Технологии будущего
    Металлопрокат: виды, характеристики и сферы применения

    Металлопрокат: виды, характеристики и сферы применения

    Что дает и зачем нужен диплом MBA

    Что дает и зачем нужен диплом MBA

    Золотые кольца на заказ: искусство создания уникального украшения

    Золотые кольца на заказ: искусство создания уникального украшения

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

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

    Что такое Подарочная карта App Store

    Что такое Подарочная карта App Store

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

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

    «Помощь в ежедневных сценариях кажется очевидным применением ИИ»

    «Помощь в ежедневных сценариях кажется очевидным применением ИИ»

    «Модель ориентирована на спортсменов и любителей уличных активностей»

    «Модель ориентирована на спортсменов и любителей уличных активностей»

    «Матовый экран минимизирует блики даже при ярком освещении»

    «Матовый экран минимизирует блики даже при ярком освещении»

  • Новости програмирования
    Игры Ростелеком: как подключить и выбрать лучшие игровые сервисы

    Игры Ростелеком: как подключить и выбрать лучшие игровые сервисы

    UI-дизайн сайта в Figma: от идеи до готового макета

    Преимущества CRM-систем: как автоматизация меняет бизнес

    Почему OpenClaw и опенсорсные агенты растут быстрее корпоративных решений

    Почему OpenClaw и опенсорсные агенты растут быстрее корпоративных решений

    Кабель ВВГ: надежный выбор для безопасной и эффективной проводки

    Кабель ВВГ: надежный выбор для безопасной и эффективной проводки

    Разработка мобильных приложений и сервисов

    Разработка мобильных приложений и сервисов

    Преимущества автоматизации бизнеса: путь к эффективности и прибыли

    Преимущества автоматизации бизнеса: путь к эффективности и прибыли

    Внедрение информационных систем на платформе 1С:Предприятие и Битрикс24: стратегия цифровой трансформации бизнеса

    Внедрение информационных систем на платформе 1С:Предприятие и Битрикс24: стратегия цифровой трансформации бизнеса

    Современные серверные решения для бизнеса и ИТ-инфраструктуры

    Современные серверные решения для бизнеса и ИТ-инфраструктуры

    Кабельная продукция: виды, назначение и особенности применения

    Кабельная продукция: виды, назначение и особенности применения

  • Статьи
    • Все
    • Бизнес
    • Гаджеты
    • Сервисы
    • Технологии
    • Цифровая экономика
    Аккумуляторные батареи для ИБП: обзор современных технологий

    Аккумуляторные батареи для ИБП: обзор современных технологий

    Как увеличить посещаемость сайта: стратегии работы с трафиком, тестирование рекламных каналов и выполнение KPI

    Как увеличить посещаемость сайта: стратегии работы с трафиком, тестирование рекламных каналов и выполнение KPI

    Детейлинг автомобиля: профессиональный уход, защита и восстановление

    Детейлинг автомобиля: профессиональный уход, защита и восстановление

    Как выбрать входную дверь: полное руководство по безопасности, теплу и стилю

    На что обращать внимание при выборе входной двери: полное руководство

    Как выбрать входную дверь: полное руководство по безопасности, теплу и стилю

    Как выбрать входную дверь: полное руководство по безопасности, теплу и стилю

    Призыв в армию: категории годности, заболевания и права призывника

    Призыв в армию: категории годности, заболевания и права призывника

    История зарождения криптобирж: от первой сделки до глобальных платформ

    Что такое криптобиржа: полное руководство

    История зарождения криптобирж: от первой сделки до глобальных платформ

    История зарождения криптобирж: от первой сделки до глобальных платформ

    Управление производственными активами: стратегии, методы и цифровые решения

    Управление производственными активами: стратегии, методы и цифровые решения

Нет результатов
Просмотреть все результаты
  • Главная
  • Новости
    Промокоды: как находить, проверять и использовать для максимальной выгоды

    Промокоды: как находить, проверять и использовать для максимальной выгоды

    Контекстная реклама: как работает, зачем нужна и как настроить эффективную кампанию

    Контекстная реклама: как работает, зачем нужна и как настроить эффективную кампанию

    Услуги антихром: что это, зачем нужны и как выбрать исполнителя

    Услуги антихром: что это, зачем нужны и как выбрать исполнителя

    Порожки для пола: виды, назначение и тонкости выбора

    Порожки для пола: виды, назначение и тонкости выбора

    Установка автоматических систем газового пожаротушения

    Установка автоматических систем газового пожаротушения

    WhatsApp Business API: возможности и преимущества для вашего бизнеса

    WhatsApp Business API: возможности и преимущества для вашего бизнеса

    Чистые помещения под ключ для производства: комплексный подход

    Чистые помещения под ключ для производства: комплексный подход

    Как использовать промокод в Lamoda

    Как использовать промокод в Lamoda

    Автоматизация ключевых процессов в бухгалтерии с помощью 1С: Бухгалтерия 8

    Автоматизация ключевых процессов в бухгалтерии с помощью 1С: Бухгалтерия 8

  • VR-Новости
    Подключение виртуальной АТС: пошаговая инструкция для бизнеса

    Подключение виртуальной АТС: пошаговая инструкция для бизнеса

    Криптовалюта для начинающих: полное руководство, биржи и тренды

    Криптовалюта для начинающих: полное руководство, биржи и тренды

    Прибыльность майнинга в 2026 году: честный разбор с цифрами

    Прибыльность майнинга в 2026 году: честный разбор с цифрами

    Пополнение Apple ID: все способы и полезные советы

    Пополнение Apple ID: все способы и полезные советы

    Продвижение сайтов: полный гид по SEO и интернет-маркетингу в 2026 году

    Продвижение сайтов: полный гид по SEO и интернет-маркетингу в 2026 году

    Лучшие гемблинг-партнёрки: как выбрать, заработать и избежать мошенничества

    Лучшие гемблинг-партнёрки: как выбрать, заработать и избежать мошенничества

    UI-дизайн сайта в Figma: от идеи до готового макета

    UI-дизайн сайта в Figma: от идеи до готового макета

    CRM для застройщиков: как девелоперу автоматизировать продажи

    CRM для застройщиков: как девелоперу автоматизировать продажи

    PGLens: корпоративный мониторинг и управление PostgreSQL

    PGLens: корпоративный мониторинг и управление PostgreSQL

  • Обучение
    • Все
    • Программирование
    • Профессии IT
    1С: возможности, применение и особенности платформы

    1С: возможности, применение и особенности платформы

    ChatGPT: архитектура, возможности и влияние на современное общество

    ChatGPT: архитектура, возможности и влияние на современное общество

    Внедрение ИИ в бизнес под ключ: цифровые решения от Secret Agents

    Внедрение ИИ в бизнес под ключ: цифровые решения от Secret Agents

    Как выбрать ноутбук

    Как выбрать ноутбук

    SEO-продвижение сайта: основы и эффективные стратегии

    SEO-продвижение сайта: основы и эффективные стратегии

    Зачем вашей компании IT-аутсорсинг: скрытые преимущества и прямая выгода

    Создание сайта на заказ: ваш цифровой фундамент для успешного бизнеса

    Создание сайта на заказ: ваш цифровой фундамент для успешного бизнеса

    Принцип работы современного языкового помощника

    Принцип работы современного языкового помощника

    Как делается оцифровка кино-видео-фото материалов

    Как делается оцифровка кино-видео-фото материалов

  • Технологии будущего
    Металлопрокат: виды, характеристики и сферы применения

    Металлопрокат: виды, характеристики и сферы применения

    Что дает и зачем нужен диплом MBA

    Что дает и зачем нужен диплом MBA

    Золотые кольца на заказ: искусство создания уникального украшения

    Золотые кольца на заказ: искусство создания уникального украшения

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

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

    Что такое Подарочная карта App Store

    Что такое Подарочная карта App Store

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

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

    «Помощь в ежедневных сценариях кажется очевидным применением ИИ»

    «Помощь в ежедневных сценариях кажется очевидным применением ИИ»

    «Модель ориентирована на спортсменов и любителей уличных активностей»

    «Модель ориентирована на спортсменов и любителей уличных активностей»

    «Матовый экран минимизирует блики даже при ярком освещении»

    «Матовый экран минимизирует блики даже при ярком освещении»

  • Новости програмирования
    Игры Ростелеком: как подключить и выбрать лучшие игровые сервисы

    Игры Ростелеком: как подключить и выбрать лучшие игровые сервисы

    UI-дизайн сайта в Figma: от идеи до готового макета

    Преимущества CRM-систем: как автоматизация меняет бизнес

    Почему OpenClaw и опенсорсные агенты растут быстрее корпоративных решений

    Почему OpenClaw и опенсорсные агенты растут быстрее корпоративных решений

    Кабель ВВГ: надежный выбор для безопасной и эффективной проводки

    Кабель ВВГ: надежный выбор для безопасной и эффективной проводки

    Разработка мобильных приложений и сервисов

    Разработка мобильных приложений и сервисов

    Преимущества автоматизации бизнеса: путь к эффективности и прибыли

    Преимущества автоматизации бизнеса: путь к эффективности и прибыли

    Внедрение информационных систем на платформе 1С:Предприятие и Битрикс24: стратегия цифровой трансформации бизнеса

    Внедрение информационных систем на платформе 1С:Предприятие и Битрикс24: стратегия цифровой трансформации бизнеса

    Современные серверные решения для бизнеса и ИТ-инфраструктуры

    Современные серверные решения для бизнеса и ИТ-инфраструктуры

    Кабельная продукция: виды, назначение и особенности применения

    Кабельная продукция: виды, назначение и особенности применения

  • Статьи
    • Все
    • Бизнес
    • Гаджеты
    • Сервисы
    • Технологии
    • Цифровая экономика
    Аккумуляторные батареи для ИБП: обзор современных технологий

    Аккумуляторные батареи для ИБП: обзор современных технологий

    Как увеличить посещаемость сайта: стратегии работы с трафиком, тестирование рекламных каналов и выполнение KPI

    Как увеличить посещаемость сайта: стратегии работы с трафиком, тестирование рекламных каналов и выполнение KPI

    Детейлинг автомобиля: профессиональный уход, защита и восстановление

    Детейлинг автомобиля: профессиональный уход, защита и восстановление

    Как выбрать входную дверь: полное руководство по безопасности, теплу и стилю

    На что обращать внимание при выборе входной двери: полное руководство

    Как выбрать входную дверь: полное руководство по безопасности, теплу и стилю

    Как выбрать входную дверь: полное руководство по безопасности, теплу и стилю

    Призыв в армию: категории годности, заболевания и права призывника

    Призыв в армию: категории годности, заболевания и права призывника

    История зарождения криптобирж: от первой сделки до глобальных платформ

    Что такое криптобиржа: полное руководство

    История зарождения криптобирж: от первой сделки до глобальных платформ

    История зарождения криптобирж: от первой сделки до глобальных платформ

    Управление производственными активами: стратегии, методы и цифровые решения

    Управление производственными активами: стратегии, методы и цифровые решения

Нет результатов
Просмотреть все результаты
Digital 2 - Цифровая реальность
Нет результатов
Просмотреть все результаты
Главная Обучение

Заметки Python #19: Тестирование

28.05.2019

Тестирование — серьезный этап жизненного цикла разработки, поэтому обойти эту тему никак нельзя.

Тестирование на Python

Процесс тестирования на Python существенно отличается от других ООП-языков программирования, т.к. код программы не обрабатывается компилятором. А это значит, что мы лишены возможности дебага проекта до его запуска. В нашем случае, компилятором будут наши собственные тесты.

Модульное тестирование

Несмотря на то, что в Python собственный оператор assert для тестирования кода, мы будем опираться на модульное тестирование с помощью библиотеки юнит-тестов unittest. Модульное тестирование позволяет писать тесты в отдельном модуле (файле .py), чтобы не захламлять основной код программы — сильно важно при работе с большими проектами. Правилом хорошего тона считается полностью отделить подготовленные тесты от написанного программного кода. Для каждого программного пакета следует создать отдельный каталог, в котором будут располагаться его тесты. Модулям пакета должны соответствовать файлы с программным кодом, а каждому из них — файлы с тестовым классом. Если в пакете реализовано четыре Python-модуля: file_1.py, file_2.py, file_3.py, file_4.py, — в нем должен быть каталог с четырьмя тестовыми файлами. Название каждого из них должно начинаться с «test» и содержать наименование модуля: test_ file_1.py, test_ file_2.py, test_ file_3.py, test_ file_4.py.

Почему не assert?

С помощью assert возможно провести полноценное тестирование, но автоматизации в этом практически никакой:  тесты с assert нужно запускать и отлаживать вручную. К тому же для каждой проверки нужна своя функция. Процесс написания тестов может сильно затянуться. При модульном тестировании с помощью unittest можно написать тест для каждого компонента программы (класса или целого модуля). Это проще и быстрее — по мере роста продуктов модульные тесты могут объединяться в структуры и средства тестирования. К тому же у модуля unittest множество дополнительных параметров настройки, используемых для группировки тестов, создания их наборов тестов и управления окружением, в котором они выполняются. Эти особенности не имеют прямого отношения к процессу создания тестов (классы обычно пишутся независимо от того, как в действительности выполняются тесты).

Что такое юнит-тесты?

Юнит-тест подразумевает проверку отдельной сущности программы (функций, модулей, методов). Проверка будет происходит для ограниченного участка кода — это быстрей, чем использование стандартных (системных) тестов, которые проверяют всё взаимодействие между модулями, классами и т.д. . При составлении документации проекта, юнит-тесты сослужат хорошую службу — по ним можно ориентироваться, что должна делать программа в этом месте, как проверяется её работа (это можно сделать с помощью генератора документации sphinx-doc)

Сам по себе юнит — это и есть фрагмент кода (в нашем случае являющийся классом) — такая же часть кода, как и архитектура. Они делают его приспособленным к внесению изменений с минимальными последствиями. Чем стройнее архитектура — тем легче создавать тесты. Чем лучше организованы тесты, тем меньше скрытых последствий будет после изменений. Тем надежнее и качественнее код.

Модуль unittest

Библиотека юнит-тестов unittest создана специально для автоматизации тестирования и легкой интеграции конкретного теста в существующий код. Данный модуль  является встроенным — его не нужно устанавливать дополнительно. Как работает unittest?

  1. Испытательный стенд (test fixture) — в рамках данной концепции настраиваются тесты и операции, выполняемые по их завершении — например, генерация временных баз данных и старт серверного процесса.
  2. Тестовый случай (test case) — определяет блок тестирования. Выполняет проверку ответов для различных наборов данных. В модуле unittest реализован базовый класс TestCase, используемый для подготовки новых тестовых случаев.
  3. Набор тестов (test suite) — набор тестовых случаев или самих тестов. Объединяет тесты, которые выполняются вместе.
  4. Исполнитель тестов (test runner) — компонент, контролирующий выполнение тестов и предоставляющий результат пользователю. Может работать через графический или текстовый интерфейс и возвращать специальный объект с сообщением о результате тестирования.

Пример тестирования с помощью unittest

Модуль unittest опирается на объявление класса, производного от unittest.TestCase. Отдельные тесты определяются как методы, имена которых начинаются со слова test: testsimplestring, testtypeconvert и так далее. Важно отметить, что имена методов могут выбираться произвольно — главное, чтобы они начинались со слова test. Внутри каждого теста выполняются проверки условий.

[code]

import unittest

# набор обычных функций, выполняющих математические действия
def add(a, b):
return a + b

Статьи по теме

1С: возможности, применение и особенности платформы

1С: возможности, применение и особенности платформы

11.03.2026
ChatGPT: архитектура, возможности и влияние на современное общество

ChatGPT: архитектура, возможности и влияние на современное общество

21.02.2026

def sub(a, b):
return a — b

def mul(a, b):
return a * b

def div(a, b):
return a / b

# Тестовый случай
class TestMatematics(unittest.TestCase): #класс TestCase содержит в себе отдельные тесты
# создаем сами тесты
def test_add(self):
self.assertEqual(add(1, 2), 3) #подставляем значения функции и предполагаемый итоговый результат
#assertEqual — проверка ожидаемого результата
def test_sub(self):
self.assertEqual(sub(4, 2), 2)

def test_mul(self):
self.assertEqual(mul(2, 5), 10)

def test_div(self):
self.assertEqual(div(8, 4), 2)

if __name__ == ‘__main__’:
# unittest.main()
suite = unittest.TestLoader().loadTestsFromTestCase(TestMatematics)
unittest.TextTestRunner(verbosity=2).run(suite)

[/code]

При использовании среды разработки PyCharm можно запускать отдельные тесты прямо из рабочей области:

Суть каждого теста — вызов assertEqual() для проверки ожидаемого результата; assertTrue() или assertFalse() для проверки условия; assertRaises() для проверки, что метод порождает исключение. Эти методы используются вместо обычного assert для того, чтобы исполнитель тестов смог взять все результаты и оформить отчёт.

Какие методы можно использовать в unittest.TestCase?

Экземпляр t класса unittest.TestCase имеет следующие методы, которые могут использоваться для тестирования и управления этим процессом:

  • t.setUp() — применяется для настройки перед вызовом любых методов тестирования;
  • t.tearDown() — вызывается для заключительных действий после выполнения всех тестов;
  • t.assert_(expr [, msg]) / t.failUnless(expr [, msg]) — сообщает об ошибке тестирования, если выражение expr оценивается как False. msg — это строка сообщения, объясняющая причины ошибки (если задана);
  • t.assertEqual(x, y [,msg]) / t.failUnlessEqual(x, y [, msg]) — сообщает об ошибке тестирования, если x и y не равны;
  • t.assertNotEqual(x, y [, msg]) / t.failIfEqual(x, y, [, msg]) — сообщает об ошибке тестирования, если x и y равны;
  • t.assertAlmostEqual(x, y [, places [, msg]]) / t.failUnlessAlmostEqual(x, y, [, places [, msg]]) — сообщает об ошибке тестирования, если числа x и y не совпадают с точностью до знака places после десятичной точки. Проверка выполняется за счет вычисления разности между x и y и округления результата до указанного числа знаков places после десятичной точки. Если результат равен нулю, числа x и y можно считать почти равными;
  • t.assertNotAlmostEqual(x, y, [, places [, msg]]) / t.failIfAlmostEqual(x, y [, places [, msg]]) — сообщает об ошибке тестирования, если числа x и y совпадают с точностью до знака places после десятичной точки;
  • t.assertRaises(exc, callable, …) / t.failUnlessRaises(exc, callable, …) — сообщает об ошибке тестирования, если вызываемый объект callable не выдает исключение exc. Остальные аргументы методов передаются callable. Для тестирования набора исключений в аргументе exc передается кортеж с этими исключениями;
  • t.failIf(expr [, msg]) — сообщает об ошибке тестирования, если выражение expr оценивается как True;
  • t.fail([msg]) — сообщает об ошибке тестирования;
  • t.failureException — в этом атрибуте сохраняется последнее исключение, перехваченное в тесте. Может использоваться, когда необходимо проверить, что исключение не только вызывается, но и сопровождается требуемым значением (например, сообщение, генерируемое исключением)

«Боевой» пример

Рассмотрим задачу, которая вполне может быть поставлена перед программистом в реальной жизни. Нужн написать программу для расчета заработной платы сотрудникам. Нам, как разработчикам, нужно сразу протестировать программу на предмет возможных ошибок. Здесь мы используем функцию namedturple из модуля collections для создания именованного кортежа. Подробнее о них можно почитать на хабре — https://habr.com/ru/post/330034/.

[code]

«»»
Фамилия Имя Часов Ставка
Булкин Андрей 20 100
Подгорный Андрей 60 1000
Паршуков Александр 45 500
«»»

import datetime
from collections import namedtuple
import unittest

monthly_payment = namedtuple(‘Pay’, (‘surname’, ‘name’, ‘worked’, ‘rate’)) #создаем именнованный кортеж

def get_pay(line): # Функция, вычисляющая месячную зп
line = line.split() # делим строку на части и возвращаем список
if line: #—————————————— если данные содержат эти данные
data = monthly_payment(*line) # в переменную data заносим список построчно
fio = ‘ ‘.join((data.surname, data.name)) # в переменную ФИО заносим фамилию и имя
pay = int(data.worked) * int(data.rate) # считаем зарплату
res = (fio, pay)#—————————— то выводим результат
else:
res = () #—————————— иначе пустой список
return res

#Создаем тестовый случай
class TestPay(unittest.TestCase): #класс TestCase содержит в себе отдельные тесты
# вызываем функцию get_pay и передаем ей некоторые параметры
def test_get_pay_summ(self): #проверяем, чтобы сумма была корректно подсчитана
self.assertEqual(get_pay(‘Булкин Андрей 20 100’), #вводим данные
(‘Булкин Андрей’, 2000)) #ожидаемый результат(res =(fio, pay)

def test_get_pay_fio(self): #проверяем, чтобы ввод ФИО был правильный
self.assertEqual(get_pay(‘Булкин Андрей 20 100’)[0], #первый элемент списка…
‘Булкин Андрей’) #…..должен быть таким: сначала Имя, потом фамилия

def test_get_pay_empty(self): #проверяем, чтобы сразабывало else res=(). Если ничего не передано
self.assertEqual(get_pay(»), ())

#if __name__ == «__main__»:
#unittest.main()

[/code]

Предыдущий пост

Проверка авто по Автотеке: может ли она обмануть?

Следующий пост

Заметки Python #20: Логирование

Похожие публикации

1С: возможности, применение и особенности платформы

1С: возможности, применение и особенности платформы

11.03.2026

Платформа 1С представляет собой универсальное решение для автоматизации бизнес-процессов предприятий различных масштабов. Она позволяет создавать и адаптировать приложения для учета,...

ChatGPT: архитектура, возможности и влияние на современное общество

ChatGPT: архитектура, возможности и влияние на современное общество

21.02.2026

В ноябре 2022 года компания OpenAI выпустила продукт, который кардинально изменил представление миллионов людей о взаимодействии с искусственным интеллектом —...

Внедрение ИИ в бизнес под ключ: цифровые решения от Secret Agents

Внедрение ИИ в бизнес под ключ: цифровые решения от Secret Agents

03.02.2026

Современный бизнес требует инновационных подходов для поддержания конкурентоспособности и роста. Компания Secret Agents специализируется на разработке цифровых продуктов и сервисов,...

Как выбрать ноутбук

Как выбрать ноутбук

07.12.2025

Выбор ноутбука сегодня — задача не из лёгких. Рынок предлагает десятки моделей, различных по мощности, назначению, размеру и стоимости. Покупатели...

SEO-продвижение сайта: основы и эффективные стратегии

SEO-продвижение сайта: основы и эффективные стратегии

02.12.2025

SEO (Search Engine Optimization) — это комплекс мер, направленных на повышение позиций веб-сайтов в поисковых системах. Основная цель SEO продвижения...

Загрузи больше

Новое на сайте

Аккумуляторные батареи для ИБП: обзор современных технологий

Аккумуляторные батареи для ИБП: обзор современных технологий
23.04.2026

Источники бесперебойного питания (ИБП) давно стали неотъемлемой частью современной инфраструктуры: от серверных и медицинского оборудования до домашних компьютеров и систем...

Читать далее

IT-аутстаффинг разработчиков — IT-аналитики в аренду

IT-аутстаффинг разработчиков — IT-аналитики в аренду
23.04.2026

В условиях кадрового голода и постоянного усложнения цифровых продуктов, компании все чаще обращаются к гибким моделям привлечения персонала. Одной из...

Читать далее
  • Популярное
  • Комментарии
  • Последнее
Умный дом Ростелекома: Безопасность и Управление

Умный дом Ростелекома: Безопасность и Управление

15.05.2019
Ноутбуки Asus не видят жесткий диск. Автоматический вход в BIOS при старте

Ноутбуки Asus не видят жесткий диск. Автоматический вход в BIOS при старте

12.01.2019
Телевидение Wink Ростелеком: Samsung LG, Sony, Phillips, Android TV

Телевидение Wink Ростелеком: Samsung LG, Sony, Phillips, Android TV

25.01.2019
Проверка авто по Автотеке: может ли она обмануть?

Проверка авто по Автотеке: может ли она обмануть?

24.05.2019
Ноутбуки Asus не видят жесткий диск. Автоматический вход в BIOS при старте

Ноутбуки Asus не видят жесткий диск. Автоматический вход в BIOS при старте

Телевидение Wink Ростелеком: Samsung LG, Sony, Phillips, Android TV

Телевидение Wink Ростелеком: Samsung LG, Sony, Phillips, Android TV

Искусственный интеллект в страховании Insur Ai

Искусственный интеллект в страховании Insur Ai

Digital Retail: Как изменят рынок новые цифровые технологии?

Digital Retail: Как изменят рынок новые цифровые технологии?

Аккумуляторные батареи для ИБП: обзор современных технологий

Аккумуляторные батареи для ИБП: обзор современных технологий

23.04.2026
IT-аутстаффинг разработчиков — IT-аналитики в аренду

IT-аутстаффинг разработчиков — IT-аналитики в аренду

23.04.2026
Как увеличить посещаемость сайта: стратегии работы с трафиком, тестирование рекламных каналов и выполнение KPI

Как увеличить посещаемость сайта: стратегии работы с трафиком, тестирование рекламных каналов и выполнение KPI

22.04.2026
Смартфон Redmi 5: доступный функционал и надежность в повседневной жизни

Смартфон Redmi 5: доступный функционал и надежность в повседневной жизни

20.04.2026

Digital 2 — Цифровая реальность — Всё о Digital технологиях, сервисах, программировании, разработках со всего мира

Выбор редактора
Карьера и обучение

Фотография принтера

24.05.2025
ТОП недели
Обслуживание корпоративных серверов как основа стабильной и безопасной работы бизнеса
Без рубрики

Обслуживание корпоративных серверов как основа стабильной и безопасной работы бизнеса

20.04.2026
ТОП месяца
Цифровой спорт: как League of Legends и World of Tanks собирают миллионы зрителей
Без рубрики

Цифровой спорт: как League of Legends и World of Tanks собирают миллионы зрителей

10.04.2026

© Digital2.ru. Все права защищены.

Нет результатов
Просмотреть все результаты
  • Digital2.ru
  • FAQ
  • Home 2
  • Home 3
  • Карта сайта
  • Карта сайта
  • Обратная связь
  • Обратная связь

© 2023. Digital2.ru. Все права защищены.