ScalaTest を使用して、テスト ケース内の関数の実装を置き換えたいと考えています。私のユースケース:
object Module {
private def currentYear() = DateTime.now().year.get
def doSomething(): Unit = {
val year = currentYear()
// do something with the year
}
}
単体テスト testing を書きたいのですがModule.doSomething
、このテスト ケースがテストが実行された実際の年に依存することは望ましくありません。
動的言語では、関数の実装を置き換えて固定値を返す構造体をよく使用しました。
Module.currentYear
実際の年に関係なく、常に 2014 を返すようにテスト ケースの実装を変更したいと思います。
いくつかのモック ライブラリ (Mockito、ScalaMock など) を見つけましたが、それらはすべて新しいモック オブジェクトしか作成できませんでした。それらのどれもメソッドの実装を置き換えることができなかったようです.
それを行う方法はありますか?そうでない場合、テストが実行された年に依存せずに、どうすればそのようなコードをテストできますか?