Насмешка с использованием неявных методов, EasyMock - PullRequest
0 голосов
/ 21 января 2019

У меня есть следующий метод:

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, но мне кажется, что должен быть какой-то разумный способ сделать это.

...