Skip to content
Permalink
Branch: master
Commits on Jun 8, 2013
  1. GrailsConnectionProviderではなく、既存のSpringConnectionProviderを使ってみたがエラーになる…

    nobeans committed Jun 8, 2013
    …のでコメントを書いておいた
    
    SpringConnectionProviderは、Grailsが使っているDataSource実装のGrailsHibernateTransactionManagerを
    受け取れないため、独自のGrailsConnectionProviderが必要という流れ。
  2. CustomerTestsを削除した

    nobeans committed Jun 8, 2013
    デフォルトのまま放置されてたので
  3. GrailsConnectionProviderを実装して、Mirageで使えるようにした

    nobeans committed Jun 8, 2013
    インテグレーションテストを書いて気がついたけど、この時点のMirageのSqlManagerの設定では、
    Tx管理がうまくいっていない。
    (元々のコードの挙動は良い感じだったけど、DataSourceをGrailsのHibernateのデフォルトのものを
    使うようにresources.groovyを変えたところ、既存Txが存在する場合の挙動が期待と異なるようになった)
    
    単純にHibernateのカレントセッションからコネクションを取得して使っていれば、
    Tx管理はSpring/Hibernateがやってくれるが、Mirageの持っているConnectionProviderでは
    それができるものが見つからなかった。
    SpringConnectionProviderはTransactionManagerを指定する、などの使いにくい感じだったので、
    実装してみた。
    
    まだ自信はないけど、インテグレーションテストの結果を見るとうまく動いてる様子。
  4. CustomerServiceをリファクタリングした

    nobeans committed Jun 8, 2013
    - 変数名を変更
    - Txの振る舞いを探りたいのでassertをこのタイミングで仕込んでみた
    - など
  5. select.sqlにorder byを付けた

    nobeans committed Jun 8, 2013
    テストでidの並び順が確定しないし、list取得メソッドなので順序を明示しておきたい
  6. Spockをインストールした

    nobeans committed Jun 8, 2013
    2.3からSpockが標準になるし、使いやすいので。
  7. BootStrapをリファクタリングした

    nobeans committed Jun 8, 2013
    - failOnError: trueを使っておくと、予期しない問題があって保存できない場合に例外が発生してすぐに気がつける。
      デフォルトでは失敗しても自前でhasErros()とか戻り値チェックをしないと失敗してることに気づけない。
    - Groovyライクにリストを使ってみた
    - developmentのときだけBootStrapでダミーデータを追加するのが良いと思う。
      テストの時はテストの都合があるので、テストのsetupでフィクスチャを構築すればOK、というポリシ。
  8. CustomerControllerTestsを削除した

    nobeans committed Jun 8, 2013
    理由:
    - スキャフォルド生成されたままの状態で、現状のコントローラ実装とずれていた
    - コントローラのテストを頑張っても実入りが少ないので
  9. Improxプラグインをインストールした

    nobeans committed Jun 8, 2013
    テストを書くのに大変便利なのです
  10. Springから取得したSqlManagerをそのまま使うようにした

    nobeans committed Jun 8, 2013
    bean定義の見直しにより、sqlManagerをそのまま使えるようになったため。
  11. Springのbean定義を見直して、GrailsのデフォルトのdataSourceを使うようにした

    nobeans committed Jun 8, 2013
    これによってGrailsとMirageで同一コネクション/同一トランザクションが使えるようになる。
    また、DataSource.groovyでの設定が効くので、非DRYなdialect指定などは不要になる。はず。
  12. idの払い出しをsequenceに任せるようにidを省略した

    nobeans committed Jun 8, 2013
    idを固定で書くと2回目以降で必ずエラーになるため。
    RDBMSによってはエラーになるかも。
  13. developmentモードでH2を使うようにした

    nobeans committed Jun 8, 2013
    mysql用の設定はdevelopment配下に移動してコメントアウトしてあるので、
    H2用のurlをコメントアウトして、mysql用のをコメント解除したら前のように使えます。
  14. grails-app/utils配下のソースをsrc/groovy配下に移動した

    nobeans committed Jun 8, 2013
    勘違いしやすいですがutil配下はユーティリティクラス置き場ではなく、
    Codecなどの特殊なアーティファクト置き場なので、本来の用途では滅多に使いません。
    自前のgroovyコードはsrc/groovy配下に置きます。
Commits on May 6, 2013
  1. サンプル公開

    onBass-naga committed May 6, 2013
You can’t perform that action at this time.