首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Groovy / Mocking Sql

Groovy / Mocking Sql
EN

Stack Overflow用户
提问于 2015-03-16 02:12:33
回答 1查看 1K关注 0票数 2

我尝试用以下方式在Groovy中模拟Sql实例,我使用spock框架进行测试。但测试失败,请查看下表:

代码语言:javascript
复制
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"
    }
}

测试失败,错误如下:

代码语言:javascript
复制
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')

有什么想法吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-03-16 05:06:16

请注意,唯一不匹配的参数是db link。

您尝试将其作为String的一个实例进行验证

代码语言:javascript
复制
'jdbc:mysql://localhost:666/db'

但在不匹配的调用中,它是:

代码语言:javascript
复制
jdbc:mysql://localhost:666/db

所以问题来了,它到底是什么?验证这些类型,问题就解决了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29064339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档