1. Главная
  2. Библиотека
  3. Программирование
  4. Разработаем проект содержащий класс, который содержит д...
Решение задачи на тему

Разработаем проект содержащий класс, который содержит два метода. Первый метод вычисляет сумму двух целых чисел, второй произведение чисел. Задача: разработать модульный тест, который будет проверять корректность вычислений. Задания для самостоятельного

  • Программирование
  • #Разработка и тестирование программного обеспечения
  • #Модульное и компонентное программирование
Разработаем проект содержащий класс, который содержит два метода. Первый метод вычисляет сумму двух целых чисел, второй произведение чисел. Задача: разработать модульный тест, который будет проверять корректность вычислений. Задания для самостоятельного

Условие:

Разработаем проект содержащий класс, который содержит два метода. Первый метод вычисляет сумму двух целых чисел, второй произведение чисел.
Задача: разработать модульный тест, который будет проверять корректность вычислений.
Задания для самостоятельного выполнения по вариантам:
Разработать модульный тест для класса:
1. Комплексное число
2. Площадь примитивов (произвольный треугольник, круг, прямоугольник)
3. Класс расчета факториала
4. Класс нахождения НОК
5. Класс по собственному усмотрению.
Выбрать любой вариант из 1-4 и обязательно 5. Отчет в виде решения с подробными комментариями в среде программирования. Допускается рассмотреть принципы автоматизации на любом языке в любой среде программирования

Решение:

Ниже приведён пример решения на языке Python с подробными комментариями. В данном решении мы реализуем два класса и для них создаём модульные тесты с использованием стандартного модуля unittest: 1. Вариант 3 – класс для расчёта факториала. 2. ...

class Factorial: def calculate(self, n): Метод расчёта факториала числа n. Если n отрицательно, выбрасывается исключение ValueError. if n 0: raise ValueError(Факториал не определён для отрицательных чисел) # Инициализируем результат единицей (так определён факториал 0! = 1) result = 1 for i in range(1, n + 1): result *= i # на каждом шаге умножаем result на i return result -------------------------------------------------- ———————————————————————————— Шаг 2. Реализация класса для операций сложения и произведения Создадим класс Calculator с двумя методами: – add(a, b): возвращает сумму двух целых чисел. – multiply(a, b): возвращает произведение двух целых чисел. Код класса: -------------------------------------------------- class Calculator: def add(self, a, b): Вычисляет сумму двух чисел a и b. return a + b def multiply(self, a, b): Вычисляет произведение двух чисел a и b. return a * b -------------------------------------------------- ———————————————————————————— Шаг 3. Написание модульных тестов с использованием unittest Создадим тестовые классы для Factorial и Calculator. Мы проверим корректность вычисления для известных значений, а также обработку ошибок (например, факториал для отрицательного числа). Код модульных тестов: -------------------------------------------------- import unittest class TestFactorial(unittest.TestCase): def setUp(self): # Инициализируем экземпляр класса Factorial для каждого теста self.factorial = Factorial() def testzero(self): # 0! должно быть равно 1 self.assertEqual(self.factorial.calculate(0), 1) def testone(self): # 1! должно быть равно 1 self.assertEqual(self.factorial.calculate(1), 1) def testpositive(self): # Проверяем несколько положительных чисел self.assertEqual(self.factorial.calculate(3), 6) # 3! = 6 self.assertEqual(self.factorial.calculate(5), 120) # 5! = 120 def testnegative(self): # При вычислении факториала отрицательного числа должно возникать исключение ValueError with self.assertRaises(ValueError): self.factorial.calculate(-1) class TestCalculator(unittest.TestCase): def setUp(self): # Инициализируем экземпляр класса Calculator для каждого теста self.calculator = Calculator() def testddition(self): # Тестируем метод сложения self.assertEqual(self.calculator.add(2, 3), 5) self.assertEqual(self.calculator.add(-1, 1), 0) self.assertEqual(self.calculator.add(0, 0), 0) def testultiplication(self): # Тестируем метод умножения self.assertEqual(self.calculator.multiply(2, 3), 6) self.assertEqual(self.calculator.multiply(-1, 1), -1) self.assertEqual(self.calculator.multiply(0, 100), 0) if == : unittest.main() -------------------------------------------------- Комментарии по коду тестов: 1. Для каждого класса тестов (TestFactorial и TestCalculator) мы создаём метод setUp(), который создаёт нужный экземпляр тестируемого класса. 2. В TestFactorial проверяем: • Корректность вычисления факториала для 0 и 1. • Для положительных чисел (например, 3 и 5). • Что метод выбрасывает исключение ValueError при передаче отрицательного числа. 3. В TestCalculator проверяются операции сложения и умножения с различными входными данными (в том числе отрицательными и нулевыми). ———————————————————————————— Шаг 4. Запуск тестов Чтобы запустить тесты, скопируйте весь приведённый код в один файл (например, main.py) и выполните его. Если все тесты пройдут успешно, среда выведет сообщение об успешном прохождении тестов. ———————————————————————————— Итоговое решение Мы разработали два класса – Factorial и Calculator, для которых реализовали модульные тесты с подробными комментариями. Это демонстрирует принцип автоматизированного тестирования модулей (unit testing). Вы можете запускать и расширять данные тесты в любой удобной для вас среде программирования. Такое решение соответствует требованиям задания: вариант 3 (класс расчёта факториала) и вариант 5 (класс по собственному усмотрению – калькулятор с методами сложения и умножения). Надеюсь, это пошаговое объяснение поможет вам понять принцип построения модульных тестов и автоматизации проверки кода.

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет