borachio
使い方
本家と参考サイト
評価
- cglibを使っていないので(バイトコード変更のできない)Android上でも使用できる。。。というのを大きなメリットとして宣伝しているが、そもそも実機あるいはエミュレータ上でユニットテストを行うということ自体が間違っているので、これは全くメリットとは思えない。
- ファンクションのモックもできる。これは大きなメリットと言える。
- そのほか、モックフレームワークとしては当たり前の機能しか持っていないが、これで必要十分。いろいろとおかしなことができても意味がない。それよりも、「タイプセーフ」であることの方が重要。
- ただし、メソッド名はシンボルで表す。「本物の」メソッド名を使用できるMockitoに比較するとリファクタリングに弱い。
サンプル
サンプル1
import com.borachio._ case class World(val value: Int) trait Hello { def hello(world: World) } object BorachioTest extends AbstractMockFactory { def main(args: Array[String]) { val hello = mock[Hello] resetExpectations hello expects 'hello withArgs(new World(10)) hello.hello(new World(10)) } }
引数のマッチングは、(当然だが)基本的にequalsによる比較が行われる。