Привет! С удовольствием расскажу о своем опыте написания тестов на дешифратор. В задании требуется написать тесты на все проверки, которые есть в задании, чтобы повысить уровень доверия Пети к нашему дешифратору из предыдущего модуля.Первым делом, я решил разбить эти тесты на группы по количеству точек в шифре. Для этого я создал отдельные функции, которые проверяют различные варианты шифровки и соответствующей расшифровки. Каждая функция тестирует конкретный случай и использует менеджер контекста subTest для определения каждого тестового случая.Примеры тестов, которые я написал⁚
python
import unittest
def decode_code(code)⁚
# Расшифровка кода
pass
class TestDecoder(unittest.TestCase)⁚
def test_decode_single_dot(self)⁚
code ‘абраа..-кадабра’
expected_result ‘абра-кадабра’
with self.subTest(codecode)⁚
self.assertEqual(decode_code(code), expected_result)
def test_decode_multiple_dots(self)⁚
code ‘абра……..<'
expected_result 'абр'
with self.subTest(codecode)⁚
self.assertEqual(decode_code(code), expected_result)
# and so on...if __name__ ‘__main__’⁚
unittest.main
В первом тесте я проверяю ситуацию, когда в шифре есть одна точка. Я передаю этот код в функцию decode_code и ожидаю, что она вернет правильный результат ⸺ ‘абра-кадабра’. Используя менеджер контекста subTest, я указываю на каком тестовом случае произошла ошибка, если она возникнет.
Во втором тесте я проверяю случай с несколькими точками в шифре. Ожидаемый результат ⸺ ‘абр’. Таким образом, я проверяю различные варианты шифровки и убеждаюсь, что дешифратор работает правильно.
Я повторяю этот процесс для всех остальных проверок из задания, разбивая их на группы по количеству точек в шифре. Такой подход позволяет максимально покрыть все возможные случаи и удостовериться, что наш дешифратор работает верно.