Повторное использование проверки в качестве ограничений БД - PullRequest
0 голосов
/ 13 июля 2011

Я использую Play!и обнаружил при написании тестов, что я могу сохранить недопустимый экземпляр модели, например, с недопустимыми значениями для некоторых переменных экземпляра.Я предполагаю, что это ожидаемое поведение, чтобы разделить проверку и постоянство.Но есть ли способ повторно использовать аннотации проверки как ограничения базы данных?

Ответы [ 2 ]

1 голос
/ 13 июля 2011

Я ничего не знаю о Play. Используете ли вы аннотации проверки JSR 303? Согласно документации Play , он может использовать Hibernate для сохранения. Начиная с Hibernate 3.5, Hibernate будет включать ограничения , выраженные посредством аннотаций JSR 303 в создаваемой схеме.

1 голос
/ 13 июля 2011

Нет, проверка не связана с ограничениями базы данных. Вы должны добавить ограничения вручную в базу данных через SQL, например, используя новую evolutions инфраструктуру Play 1.2.1.

В своих модульных тестах вы должны убедиться, что данные верны. В любом случае вам следует только тестировать логику в Модели, никаких зависимостей между классами, просто выполнить несколько тестов, чтобы проверить ответ на неожиданные параметры в местах, где они могут быть использованы, но не беспокойтесь о экземплярах, сохраненных с неверными данными.

В ваших интеграционных тестах и ​​тестах на селен вы должны иметь возможность использовать систему проверки, предоставляемую Play через @Valid для вызовов контроллера. Здесь вы должны убедиться, что объекты с плохими данными не сохраняются, пытаясь добавить некоторые из них.

...