Locked History Actions

borachio

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による比較が行われる。