EduVrn / Challenge

1 stars 1 forks source link

Тестовые данные #11

Open EduVrn opened 7 years ago

EduVrn commented 7 years ago
  1. Привести в порядок код создающий тестовые данные
  2. Обеспечить накат и откат данных на произвольном сервере ( например JSP страница с кнопками "накатить"/"откатить" и отображением текущего статуса)
  3. Составить тестовые данные так чтобы были примеры с большим и малым количеством данных (например - пользователь без вызовов, пользователи с 1-2 вызовами и пользователь с 50 вызовами)
  4. В вики описать механизмы работы с накатом/откатом данных и гайдами по расширению/доработке тестовых данных.
  5. Ознакомить команду и доработать описание с учетом общих пожеланий описание в вики. С целью чтобы все дальнейшие правки команда тестировала с учётом общих ТД.
saenghwal commented 7 years ago

По второму пункту предлагаю создать .bat- и/или .sh-скрипты для наката базы. Никакой кнопки для генерации тестовых данных быть не должно.

joinedserg commented 7 years ago

не согласен со скриптами, при загрузке, инициализация начальных дынных происходит здесь: https://github.com/EduVrn/Challenge/blob/master/src/main/java/challenge/dbside/ini/InitialLoader.java в функции init происходит создание тестовых бизнес сущностей, предлагаю здесь же читать тестовые данные из некоторого файла (xml - скорее всего), который класть в ресурсы. Норм решение?

saenghwal commented 7 years ago

Pojo-классы и работу сервисов в таком случае проверяют при использовании JUnit в соответствующих тестовых классах.

gora812 commented 7 years ago

@saenghwal По скриптам - вполне вариант, из минусов я вижу 1) сложность произвольного запуска на удаленном сервере 2) больше трудозатрат. @joinedserg InitialLoader.java - если я правильно понимаю тут мы делаем запись в бд кажды раз при старте приложения - 1) ребут сервера приведет к дубликату? 2) как откатить тестовые данные (оставив только предварительную конфигурацию) ?

saenghwal commented 7 years ago

@gora812, https://github.com/EduVrn/Challenge/issues/23

gora812 commented 7 years ago

Стоит посмотреть https://github.com/celiovasconcelos/jpamock https://github.com/Codearte/jfairy https://github.com/DiUS/java-faker

Базовая идея в том чтобы тестовые данный было просто поодерживать (читать/писать/расширять) SQL для этих задачь не подходит принципиально https://github.com/EduVrn/Challenge/commit/9dab3a00241241a9565b230478aca19cfe14e5b7#diff-23c19af415ff2ae4115d6c2000faf60c тут можно попытаться догадаться что происходит в секции <<Data for Table "values">> но что тут <<Data for Table "relationship">> ... Понятно конечно что связи между объектами, но глядя только на этот кусок кода не возможно понять что за объекты, на что ссылаются, и какой тип связи . :(