最近Scalaでプログラミングを始めました。私はお互いを呼び出すクラスの階層を持つプロジェクトを持っています。最終的には、MySQLのストアドプロシージャを呼び出すシングルトンのDAL(Data Access Layer)オブジェクトを呼び出します。Scalaのモックを使ってシングルトンオブジェクトをモックする方法
私は次のシグネチャを持つDALのオブジェクトを持っている:
def callStoredProcedure(procName: String, params: Array[String]): Boolean
私はトップレベルのクラスの関数を呼び出すテストを書くのが好き、とprocName
が渡されたかを確認したいです関数。
DALオブジェクトのモックを作成するにはどうすればよいですか?どのように私はそれをプロセスパイプラインに注入することができますか?それを呼び出すのではなく、プロシージャ名を返すモックでシングルトンを置き換える方が良い/推奨される方法はありますか?
私たちは現在Mockitoを使用していますが、私は何かを開いています。
その助け、私はどのようにして求めることができるんならば代わりに、あなたのクラスにパラメータ作る ?私は実際に呼び出されることなく、格納されたprocの名前をつかみたい。スパイはそれをしません。モッキングは、依然としてすべてのレイヤーに注入が必要です。私が間違っているなら私を訂正しますか? –
はい、本当に 'モック[DAL.type]'はディマがあなたに示したように注射を必要としますが、形質を気にする必要はありません。 'spy(DAL)'は、あなたが実際に関数を計算するので実際には関係ありません。私は自分の答えを編集する。 – Joan