2013年2月11日月曜日

ScalaMock 3では、引数ありのコンストラクタのモックは作成できない

背景


Scalaでモックを作るには何がいいのかな~ってところで
ScalaMock を使い始めました。

困ったこと


引数ありのコンストラクタのモックを作ろうとしても
error: not enough arguments for constructor XXX.
というエラーメッセージが出てコンパイルできません。

引数ありコンストラクタを持つクラスはモックを作れないことが判明


http://stackoverflow.com/questions/14274020/scalamock-mock-a-class-that-takes-arguments

にて
Right now, ScalaMock3 can only mock traits and no-args classes.

今のところ、ScalaMock3ではトレイトと引数なしのクラスのみモックできるよ。

 てことで、少なくとも現時点では、引数ありのコンストラクタを持ったクラスのモックは作成できない模様。
テスト対象のクラスを引数なしのコンストラクタにして、引数に渡したかったものはsetter使って渡す形ですかねー。
Traitで定義しておいたほうが楽ですね。
※まぁscalamockのオフィシャルページにも似たようなことが書いてあったのでやっぱりかー、というところ。

2013年2月4日月曜日

Play ScalaでのカスタムPathBindableの作成方法(へのリンク)

メモ。

Play Frameworkで独自に作成したクラスなどを
URLパスに指定したい場合、PathBindableを実装する必要があります。

そのやり方を説明してくれているサイトを発見したので備忘録的に書いておきます。

www.soutier.de/blog/2012/12/11/playframework-routes-part-2-advanced/

implicit objectという手があるのかー、
と自分のScala力の低さに悶々としてます。

2013年2月3日日曜日

sbtでscalacにコンパイルオプションを渡す方法。

背景

sbtでコンパイルを走らせた際にwarningが出で「-xxxっていうコンパイルオプションをつけてもう一度やってね」って言われるものの、
そのコンパイルオプションの付け方がわからん!


ということが起こった時にググって解決したものの、それを忘れていたせいで今日困ったので
メモしておきます。

設定の仕方

sbtを起動したら、

set scalacOptions += "-xxx"

を実行。
あとは普通にコンパイルするだけです。

他のやり方は?

build.sbtなどに設定する方法はあるのですが、
ファイルを書き換えるのは手間なので、上記のやり方でやってます。