Я пытаюсь издеваться над экземпляром Sql в Groovy следующим образом, я использую платформу spock для тестирования. Однако тест терпит неудачу, пожалуйста, смотрите ниже:Groovy/Mocking Sql
class SQLStatsStorageManagerTest extends Specification {
def mockSql
def setup() {
mockSql = GroovyMock(Sql, global: true)
}
void "SQLStatsStorageManager instantiation succeed"() {
def c
when: "SQLStatsStorageManager is instantiated"
c = new SQLStatsStorageManager("test", [hostname: "localhost", port: 666, database: "db", login: "root", password: "pass"])
then: "there is no error and name is set"
1 * mockSql.newInstance('jdbc:mysql://localhost:666/db', 'root', 'pass', 'com.mysql.jdbc.Driver')
assert c.getName() == "test"
}
}
тест не пройден со следующей ошибкой:
Too few invocations for:
1 * mockSql.newInstance('jdbc:mysql://localhost:666/db', 'root', 'pass', 'com.mysql.jdbc.Driver') (0 invocations)
Unmatched invocations (ordered by similarity):
1 * mockSql.newInstance(jdbc:mysql://localhost:666/db, 'root', 'pass', 'com.mysql.jdbc.Driver')
Любая идея?
Спасибо.
Кажется, что в непревзойденном вызове 'jdbc: mysql: // localhost: 666/db' не является' String', 'Url' может быть? Я предполагаю, что это та часть, которая не соответствует (отсутствует один апостроф). – Opal
Если вы нашли мой ответ полезным, пожалуйста, примите его и открепите. – Opal