Юнит-тесты user_active_sessions
Должны проверять работу при наличии и отсутствии активных сессий, наличии только подходящих, смеси подходящих и неподходящих и всех неподходящих сессий, а также приоритеты выдачи сообщений об ошибке при нескольких неподходящих сессиях в следующем порядке: а) нет ошибки (если хоть одна сессия подошла - error пустое) б) lessontypeerror (если нет подходящих, но хоть одна дала lessontypeerror то должен быть он - даже если она была в середине, а до и после нее были другие) в) iperror (если нет подходящих и lessontypeerror ) г) grouperror - только если все сессии дают grouperror и подходящих нет
При этом в рамках одной неподходящей сессии приоритеты строго противоположны - если не та группа сессия считается grouperror , iperror только если группа подходит, lessontypeerror только если группа и IP подходят.
Если это непонятно, подойдите в универе - объясню...
Comments (15)
-
reporter -
- attached Тесты для сессий.docx
-
Я рассматривала типы ситуаций, в тестах я буду переборы делать со всеми типами. То есть, ошибки внутри одной сессии (от одной до трех), ошибки внутри двух сессий (от одной до трех), их комбинации и приоритеты.
-
reporter Подход правильный с точки зрения системности - но и только с ней. а) помните что приоритеты ошибок внутри сессии прямо противоположны приоритетам между сессиями. Т.е. если в одной сессии неправильна и группа и тип занятия, то надо говорить про группу (ибо если группа не этого студента, то кого волнует что там за занятие??); с другой стороны если в одной сессии неправильна группа, а в другой сессии неправилен только тип занятия - тогда надо выдавать тип занятия, потому что это наиболее подходящая данному студенту сессия. Тип занятия собственно потому и настолько приоритетен между сессиями, что в рамках одной его достичь очень трудно. Судя по вашему файлу вы эту разницу не поняли. б) если присутствуют подходящие сессии, то на выходе error должен быть пустым - вы же сами писали этот код, посмотрите наше обсуждение в 392. А у вас на выходе сообщение... в) не вижу вариантов типа "сессий нет вообще" и "все сессии правильные"... Притом что вы в курсе что была ошибка именно в случае "сессий нет вообще" последний раз.
Пожалуйста, подумайте внимательно. Такое впечатление что логика данного вопроса пока от вас ускользает....
-
- attached Тесты для сессий.docx
-
Исправила сообщения об ошибках в пределах одной сессии. На отсутствие активных сессий тоже добавила тест и на несколько безошибочных.
-
reporter 1) Вы называйте файлы хоть по разному если старый удалить нельзя, номер версии например 2) Так и не вижу в вашем репозитории своих коммитов....
-
reporter По самим тестам - до 16-го нормально, только 16-й странный. Там еще бы добавить iperror/lessontyperror и сделать копии тестов с обратным порядком сессий.
17-й (а также 18-й и 19-й) противоречит 4 и 5-му; по 4-му и 5-му внутри обоих сессий выиграют grouperror и между сессиями уже будет сравниваться именно он. Сравнение ведь происходит последовательно, сначала внутри каждой сессии - а потом уже между сессиями...
-
Коммит-сообщение по тестам
-
reporter Вы ничего не путаете? По вашему коммиту эти тесты тестируют вывод таблицы логов, а иссью посвящено тестированию функции user_active_sessions, посмотрите свой же приложенный файл. Ее тестов я в коммите не вижу...
-
У меня возник вопрос по ходу создания тестов.
Есть такая ситуация - две активных сессии для студента с ошибками:
первая сессия - ошибка ip-адреса и группы
вторая сессия - ошибка ip-адреса и типа занятия
В моих описанных тестовых ситуациях должна вернуться ошибка lessontypeerror, но функция возвращает grouperror. Верно ли это с точки зрения корректности отображаемых сообщений для пользователя?
-
reporter Гм. По логике у меня выходит iperror - сообщение типа "ваша группа занимается в другом месте", тип занятий в этом случае уже вторичен. В первой сессии должно получится grouperror, во второй iperror и по логике сравнений между сессиями iperror выигрывает.
-
А если в данной ситуации во второй сессии вместо ошибки типа занятий будет ошибка в группе, то в общем получится, что будет ошибка в группе, я правильно поняла?
-
reporter Да, правильно. Тогда первая и вторая сессии идентичны получаться, а группа выигрывает у адреса в сессии - если у группы занятия нет, то не все ли равно,где другие группы занимаются?
-
Я вытолкнула в репозиторий файл с тестами на проверку.
- Log in to comment
Юнит-тесты обсуждаем здесь...