У меня есть следующий метод:
def someMethod(steamId: String): Boolean = {
db.execute("SELECT * FROM table where colum1 = ? AND column2 = ? AND colum3 = ?", List("params1", "param2", "param3"))((statement: PreparedStatement) => statement.execute())
}
В своих модульных тестах я хочу издеваться над вызовом db.execute, но не могу, ради бога, понять, как поступить.
У меня есть эта настройка в модульном тесте:
EasyMock.expect(mockedDb.execute[Boolean](_:String,_:List[Any])(_:PreparedStatement => Boolean)).andReturn(???).times(1)
EasyMock.replay(mockedDb)
и его ???часть мне нужна помощьОжидается тип возвращаемого значения:
Error:(69, 116) type mismatch;
found : Boolean(true)
required: (String, List[Any], java.sql.PreparedStatement => Boolean) => Boolean
EasyMock.expect(mockedDb.execute[Boolean](_:String,_:List[Any])(_:PreparedStatement => Boolean)).andReturn(true).times(1)
Я решил проблему, поместив вызов execute в свой собственный объект-обертку, а затем вместо этого смоделировал объект THAT, но мне кажется, что должен быть какой-то разумный способ сделать это.