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

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

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

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




Оцени работу

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

  • Отчёт оценивали:
    689Igorenzia+1   4467Alcatraz+1   2721mikemet+1   7645Александр Львович+1   1Евгений Волосатов+1   4992Николай+1   9323Алексей+1   6925Артём+1   8835Булат+1   9237Mais+1   459Сергей Сергеевич+1   3506Алексей|BrisK|Кривицкий+1   6452Кирилл Шмойлов+1   9332Dima+1   36Данил+1   8380zhikharevav+1   6391Владимир+1   9932Семен0   8886Михаил Ермишин+1   9732Андрей+1   1537Сергей+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Узнал о модульном тестировании и применил его на практике.
Трудности: Сложно было инициализировать модуль
Спасибо, очень полезный урок, пригодится мне в дальнейшем :)
Научился: Использование модульного тестирования в 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). В общем, на этом все, опять получилась большая стена текста, спасибо что дочитали) Спасибо, Евгений Витольдович, хороший урок)