2017-03-23 2 views
0

私は何とか私は、私がしようとすると、ScalaMockのスタブ

しかしその場で作成しないJavaの接続オブジェクトがある

def foo(x: A, y: B, z: C = blah) 

のような機能をモックしようとしていますそれは第三引数を探しているので、それ

(object.foo _) 
    .stubs(a, b) 

みたいなエラーが出てスタブおよび代替... とオーバーロードされたメソッド値スタブを述べています。これを回避するためにとにかくありますか?

答えて

2

私はマットに同意するが、ScalaMock(*)ワイルドカード構文があると指摘したい - http://scalamock.org/user-guide/matching/

trait Foo { 
    def foo(x: Int, y: Int, z: Int = 0): Int 
} 

val a: Int = ??? 
val b: Int = ??? 
val m = mock[Foo] 

m.foo _ stubs(a, b, *) 
0

メソッドをスタブしているときにワイルドカードを使用できます。

次のテストパスと私はあなたが探しているものだと思う:

class DefaultParameterTest extends FlatSpec with Matchers with MockFactory { 

    class A { 
    def foo(x: Int, y: Int, z: Int = 0): Int = 0 
    } 

    it should "work with a default parameter" in { 
    val bar = mock[A] 
    (bar.foo _).stubs(1, 2, _: Int).returning(5) 

    bar.foo _ expects(1, 2, 0) returning 5 once() 

    bar.foo(1, 2) 
    } 

} 
関連する問題