= borachio = == 使い方 == * [[borachio/scaladoc|本家scaladocの翻訳]] == 本家と参考サイト == * [[http://borachio.com/|http://borachio.com/]] * [[http://www.artima.com/scalazine/articles/borachio_mock_objects_for_scala.html|Borachio: Mock Objects for Scala and Android]] == 評価 == * 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による比較が行われる。