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

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

БД - Управление гостиницей / Модель. Тестирование комнат.

  • На этом уроке мы создадим TestRoom() для класса Room.
    Это будет одна функция, в которой мы последовательно
    будем вызывать все методы класса Room и проверять,
    на сколько правильно и корректно они отработали.
    В конце урока мы выполним тест пошагово.
  • Дата отправки отчёта: 27 июня 2017 г.
  • Задание выполнено: за 1 час. 00 мин.
  • Чему научился: 1 Разбирать в цикле объект DataRow.
    2 Писать тесты или точнее более менее начинать понимать, как их писать и как подлезть к их написанию.
    3 Никогда не думал, что на тестах можно ставить точки останова и отлаживать их как прогу.
    4 Находить ошибки в коде по заранее правильно написанным тестам.
    5 Узнал про extract method. Все никак не мог понять, что это и как использовать.
  • Что было сложным: Понять логику тестов. Без предварительной подготовки понять чужую логику очень сложно.
    Найти ошибки в коде функций модели.
  • Комментарии: Я сейчас в овощном состоянии. 15 минут прошло из 30, а для меня кажется уже час.
    Решил вот сразу написать, пока не забыл.

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

    Короче функция  SelectRoom(long room_id)
    Result Message:
    Test method TestHotel.DBaseTest.TestRooms threw exception:
    System.ArgumentException: Column 'step' does not belong to table table.
    Строка 82 в коде той функции.
    this.step = int.Parse(room.Rows[0]["step"].ToString());

    Я на нее смотрел как баран на ворота. Где тут что не так может быть?
    Рядом похожая строка такая же и все нормально.
    Стал смотреть, чего оно там про Step говорит. Может тип данных в самой структуре бд не тот? Вроде инт стоит.
    Поднял я глаза повыше на строку и тут до меня дошло.- step забыл написать.
    do room = sql.Select("SELECT id, room, beds, floor, info FROM room "

    Поэтому я сторонник выбирать *, если надо выбрать все поля.
    Вобщем сообщения об ошибках указывают совсем не туда, где эта ошибка есть. Надо смотреть на несколько строк назад. Да и само сообщение не очень информативное.

    Все же еще далеко даже до зачатков искусственного интеллекта, который бы ошибки показывал точнее.
    Никаких восстаний машин еще долго не будет.

    Вобщем за этот урок я довольно много узнал. Даже не ожидал.
  • Оценка видео-уроку:
Отчёт от 10588 за БД - Управление гостиницей / Модель. Тестирование комнат.




Оцени работу

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

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  kalobyte  # БД - Управление гостиницей / Модель. Тестирование комнат. / 2017-06-27 22:12

Обычная практика. С опытом привыкаешь сразу находить причину ошибки.



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





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.


Научился: Искать свои ошибки
Трудности: Найти свои ошибки
Оказывается когда сам пишешь возникает много ошибок(((


Научился: Создавать модульные тесты.
Трудности: Сделать, чтобы все тесты корректно отрабатывали.
Все нормально. У меня получилось разбить метод для тестирования таблицы "Room" на отдельные составляющие - методы. И все благополучно работает.