我尝试用以下方式在Groovy中模拟Sql实例,我使用spock框架进行测试。但测试失败,请查看下表:
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')有什么想法吗?
谢谢。
发布于 2015-03-16 05:06:16
请注意,唯一不匹配的参数是db link。
您尝试将其作为String的一个实例进行验证
'jdbc:mysql://localhost:666/db'但在不匹配的调用中,它是:
jdbc:mysql://localhost:666/db所以问题来了,它到底是什么?验证这些类型,问题就解决了。
https://stackoverflow.com/questions/29064339
复制相似问题