单元测试中的grails数据源

单元测试中的grails数据源,grails,datasource,gorm,Grails,Datasource,Gorm,我正在尝试将一些数据引导到内存中的H2数据库中,以便在域和服务模拟测试中使用。以下是如何配置测试环境的数据源: test { dataSource { dbCreate = "create-drop" url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;INIT=runscript from 'sample_bootstrap_data.sql'" } } 我能够运行应用程序,访问数据库控

我正在尝试将一些数据引导到内存中的H2数据库中,以便在域和服务模拟测试中使用。以下是如何配置测试环境的数据源:

test {
    dataSource {
        dbCreate = "create-drop"
        url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;INIT=runscript from 'sample_bootstrap_data.sql'"
    }
}
我能够运行应用程序,访问数据库控制台并查看所有数据。我遇到的问题是在服务测试中,访问这些数据。我有一个问题:在单元测试中如何访问预初始化模式中的数据

单元测试是“单元”级别的测试。换句话说,你是 测试单个方法或代码块而不考虑 周边基础设施。单元测试通常在没有 存在涉及I/O的物理资源,如数据库、套接字 连接或文件。这是为了确保它们尽可能快地运行 因为快速反馈很重要

参考

您必须使用@Mock或@Build

单元测试是“单元”级别的测试。换句话说,你是 测试单个方法或代码块而不考虑 周边基础设施。单元测试通常在没有 存在涉及I/O的物理资源,如数据库、套接字 连接或文件。这是为了确保它们尽可能快地运行 因为快速反馈很重要

参考


您必须使用@Mock或@Build。

可能的重复:简而言之,Grails单元测试实现了一个模拟Gorm数据库交互的映射。要访问测试中的数据,您需要编写集成测试而不是单元。可能重复:简而言之,Grails单元测试实现了一个模拟Gorm数据库交互的映射。要访问测试中的数据,您需要编写集成测试而不是单元。我已经超出了域对象模拟阶段,我想使用内存H2数据库中的数据对服务执行一些测试。因此,测试此服务的正确方法可能是将其转移到集成测试,是吗?然后我可以执行def someTrucks=Truck.findAllByWeight(5)@ThomasFarvour是的。我已经超出了域对象模拟阶段,我想使用内存H2数据库中的数据对服务执行一些测试。因此,测试此服务的正确方法可能是将其转移到集成测试,是吗?然后我可以做def someTrucks=Truck.findAllByWeight(5)@ThomasFarvour是的。