2016-01-26 5 views
7

スカラクラスのメソッドの1つを依存関係でスタブしたいと思います。 ScalaMockを使ってこれを達成する方法はありますか?私はmethod1()を模擬したいと思います。この例ではスカラモック部分スタブ

class TeamService(val dep1: D1) { 

    def method1(param: Int) = param * dep1.magicNumber() 

    def method2(param: Int) = { 
    method1(param) * 2 
    } 
} 

:ここ

は、私が持っているものの簡単な例です。私のテストは次のようになります:

val teamService = ??? // creates a stub 
(teamService.method1 _).when(33).returns(22) 
teamService.method2(33).should be(44) 

これを達成する方法はありますか?

+0

私はあなたがいくつかのクラスを嘲笑しているなら、あなたはその実装に依存したくないと思っていますが、今は 'method1'と' D1'の実装に依存しようとしているようです。たぶん十分な情報がないかもしれませんが、使用する必要があるすべての方法を模倣すべきです。 –

+0

これであなたの解決は何ですか? –

+0

スカラモックがこの機能をサポートしていないようです:( – Danix

答えて

0

dep1: D1をモックしなければならないので、すべてうまくいくはずです。それは "半分"を模倣するか、またはいくつかの方法だけを模倣する良い方法ではありません。

模擬試験dep1: D1は正しい方法です。

val mockD1 = mock[D1] 
val teamService = new TeamService(mockD1) 
(mockD1.magicNumber _).returns(22) 
teamService.method2(33).should be(44) 
関連する問題