Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович

Новые технологии / Модульное тестирование

  • На этом уроке мы познакомимся с модульным тестированием.
    Мы напишем небольшой калькулятор, в который добавим
    проект для модульного тестирования, и покажем,
    как это всё работает, как это нужно использовать.
  • Дата отправки отчёта: 23 января 2016 г.
  • Задание выполнено: за 1 час. 00 мин.
  • Чему научился: Модульному тестированию.
  • Что было сложным: Ничего.
  • Комментарии: Открыла для себя модульное тестирование. Полезный урок, теперь имею приблизительное представление, как это делается.
  • Оценка видео-уроку:
Отчёт от 5868 за Новые технологии / Модульное тестирование




Оцени работу

 
Сохранить страницу:

24. Олюшка
Олюшка
ответить
→  Vera  # Новые технологии / Модульное тестирование / 2016-01-23 23:26

Вера, очень хорошо что знания прибавились! Молодчина! :)


2146. Иван
Иван
ответить
→  Vera  # Новые технологии / Модульное тестирование / 2016-01-23 22:35

Здорово получилось! Знания обязательно пригодятся!


  • Отчёт оценивали:
    8977Иван0   6925Артём+1   2773Никита+1   1Евгений Волосатов+1   8886Михаил Ермишин+1   4699Сергей Витальевич+1   8275Tekashnik+1   459Сергей Сергеевич+1   7645Александр Львович+1   3747Сергей+1   5263Павел+1   2912Игорь+1   5760Мариша +1   6644valerys Nikola+1   4467Alcatraz+1   1570Сарапульцев Константин+1   2639Морозов Юрий Александрович+1   8946inward0   1947Denis+1   8967Дмитрий Артюхин+1   2146Иван+1   24Олюшка+1   6987MichGar+1  

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Научился делать модульные тесты
Трудности: Найти ошибку в методе умножения, когда передавались большие числа. После изменения на long тест всё-равно не прошёл. Оказалось, что надо перекомпилировать проект.
Классная штука!
Научился: Использование модульного тестирования в C#.
Трудности: Реализация своего класса знаковых чисел MyInteger с управляемым диапазоном значений.
Сначала сделал все как на уроке, опробовал работу всех тестов, включая последний, с исключением деления на ноль. Понравилось. Решил добавить что-то от себя. Так как в данном уроке мы пишем калькулятор и в чате упомянули о случае, если мы выйдем за границы диапазона long, то решил создать свой велосипед. Разработал класс MyInteger, который представляет знаковое целое число с управляемым ограниченным диапазоном значений. Ограничение указывается во втором параметре конструктора - это количество битов в разрядной сетке числа. Первый параметр - само число. Например, new MyInteger(5, 4) означает, что мы имеем дело с числом, значение которого 15 и число битов 4, поэтому максимальное положительное число - 2^3 - 1 = 7, соответственно отрицательное -2^3 = -8. Оба параметра имеют значения по умолчанию, то есть MyInteger(value = 0, bits = 64) и можно написать new MyInteger(5), и получим обычное число в типе long. Данное решение мне не очень нравится, в C++ я бы для этого применил шаблоны, где выход за границы проверяется на этапе компиляции и код получается безопаснее. Здесь же в C# я пока что слабо владею языком, поэтому выбрал такое решение, где ограничение на диапазон не привязано к типу на этапе компиляции и поэтому проверяется во время выполнения. Создал свои три типа исключений InvalidBitCount (bits < 1 || bits > 64), BitCountMismatch (в операциях сложения и т.д. могут участвовать только числа с количеством бит в разрядной сетке. Если не одинаково - ловим эксепшн), ValueOverflow (если вышли за пределы значений числа, например, при операции умножения получили слишком большое число). Кроме того, для удобства и на примере C++ добавил перегрузку операторов +, *. /, чтобы писать конструкции c = a + b. Удобно. Добавил 16 тестов, где рассматриваются разные варианты возникновения исключений. Названия старался выбирать говорящие, так что думаю понятно, что делает тот или иной тест. Например это тесты на проверку валидности создаваемого числа, переполнения в положительном/отрицательном диапазонах, несовместимостях двух чисел по разрядным сеткам(например пытаться сложить тип int с типом short). В общем, на этом все, опять получилась большая стена текста, спасибо что дочитали) Спасибо, Евгений Витольдович, хороший урок)