Scala(Easy)模拟默认方法参数

时间:2011-04-12 20:36:37

标签: scala mocking default-value

我有以下特征(将由java.util.prefs.Preferences包装器实现):

trait PreferencesMethods {
  def get(key: String, default: String = ""): String
  def getInt(key: String, default: Int = 0): Int
  def put(key: String, value: String)
  def putInt(key: String, value: Int)
}

我创建了一个像这样的EasyMock:

val preferencesMock = EasyMock.createMock(classOf[PreferencesMethods])

我在测试用例中这样称呼它:

EasyMock.expect(preferencesMock.getInt("key")).andReturn(0)

并且在测试中的类似:

preferences.getInt("key")

但是EasyMock抱怨我有一个意外的调用“getInt $ default $ 2”:“java.lang.AssertionError:Unexpected方法调用getInt $ default $ 2()”

如何模拟默认参数?

1 个答案:

答案 0 :(得分:1)

我认为你最好用easymock做部分模拟或寻找像Borachio这样的原生scala解决方案(http://www.paulbutcher.com/2011/02/announcing-borachio-native-scala-mocking/)