私は再生を使用しています!無効なモデルインスタンスを保存できるというテストを書いている間に発見されました。いくつかのインスタンス変数には無効な値があります。私はそれが検証と永続性を分離した状態に保つために期待される動作だと思います。しかし、データベース制約として検証アノテーションを再利用する方法はありますか?DBの制約としての再利用の検証
答えて
私はPlayについて何も知らない。 JSR 303検証アノテーションを使用していますか? Play documentationによれば、永続化のためにHibernateを使用できます。 Hibernate 3.5では、生成するスキーマ内でJSR 303アノテーションを使用して表現されたHibernate will include constraintsが表示されます。
いいえ、検証はデータベースの制約にリンクされていません。新しいevolutionsフレームワークのPlay 1.2.1を使用するなど、SQLを使用してデータベースに手動で制約を追加する必要があります。
ユニットテストでは、正しいデータを確認する必要があります。いずれにしても、モデル内のロジックをテストするだけで、クラス間の依存関係はなく、誤ったデータで保存されたインスタンスについては心配する必要はありません。
統合テストとセレンテストでは、コントローラコールで@Valid経由でPlayで提供される検証システムを使用できるはずです。ここでは、悪いデータを持つオブジェクトが永続化されていないことを確認し、いくつか追加しようとします。
evolutionsを使用していただきありがとうございます。私にとっては、モデルインスタンスの検証は、有効なものと不可能なものを決定するロジックがモデルの責任にあるため、単体テストに属します。私が単体テストで無効なモデルを保存しようとしたのは、純粋な奇妙なことから起こったのですが、それが私の精神モデルを破りました。さて、もう一度修正されました;) –
- 1. モデル制約の検証
- 2. カスタム制約の検証とヌル
- 3. 再利用RSpecの動作検証
- 4. フォームフィールドの複数の制約を再度検証する
- 5. ノックアウト検証:動的制約
- 6. MVC5での検証属性の再利用
- 7. データベース制約をRails検証に変換
- 8. 再利用可能コンポーネントのredux-form検証
- 9. 再作成デフォルトの制約 - 新しい制約が
- 10. Symfonyはオブジェクトの制約を検証しません
- 11. SQLiteチェック制約とSQLite DBブラウザ
- 12. FOSUserBundle/Symfony2:ユーザーエンティティに対して検証制約が全く適用されない
- 13. ドロップして再作成制約
- 14. Symfony2の:コールバック検証制約 - オブジェクトのプロパティが
- 15. Java Beanの検証:クラスレベルの制約を持つGroupSequence
- 16. 複雑なデータセットを要約して再利用する方法
- 17. 年齢制約の検索
- 18. symfony2がエンティティの検証制約を取得
- 19. クロスフィールド検証のカスタムクラスレベル制約が呼び出されない
- 20. oracle DBで未使用の列を再利用する方法
- 21. Rails 3 - DBシードデータの検証
- 22. UI、BLおよび/またはDLでの検証コードの再利用
- 23. UITableViewとセルの再利用
- 24. SqlConnectionとSqlDataReaderの再利用
- 25. クエリの再利用とインクルードメソッド
- 26. JSONObject検索制約
- 27. DBの移行:リレーションの制約を維持しますか?
- 28. XMLとしてのJPA 2.0ユニーク制約
- 29. Apache Kafkaの利用規約
- 30. 利用規約/ウェブサイトのポリシー
JPAではなく、Hibernateに固有のことだと思いますが、間違っている可能性があります。また、Playではデフォルトで無効になっている可能性があります。しかし、ありがとう! –
はい、私が示したように、それはHibernate 3.5以降に特有です。私がリンクしているPlayドキュメントは、PlayがHibernateを使用できる、または使用していることを示しているため、これは実行可能でなければならないようです。 –
これはPlayがJPA(実装としてのHibernate)を使用するため無効になる可能性があるので、今晩テストする必要があります。私は、私が持っているプロジェクトの中には、それらを適用していないという事実を知っています。おそらくそれです。互換性のためにデフォルトで無効になっています(または有効になっていません)。 –