gpt4 book ai didi

Grails中的Spring DSL-resources.groovy-不同文件中的bean配置?

转载 作者:行者123 更新时间:2023-12-02 14:09:14 25 4
gpt4 key购买 nike

这个问题already exists in a way ,但现有问题缺少一些重要链接。

我正在尝试将用于测试的 bean 配置移动到以 *TestsSpringBeans.groovy 结尾的单独文件中。

我在阅读 "Loading Bean Definitions from the File System" 后尝试这样做(搜索它)在 Groovy 文档中。

以下是相关的代码段:

import grails.util.*

beans = {
...
switch(Environment.current) {
case Environment.TEST:
loadBeans("classpath:*TestsSpringBeans.groovy")
break
}
}

资源.groovy - 从文件系统加载 *TestSpringBeans 文件。
somePlace(jobdb.Company) {
name = "SomeCompany"
addr1 = "addr1"
addr2 = "addr2"
city = "city"
email = "somedude@h0tmail.com"
fax = "555-555-5555"
phone = "444-444-4444"
state = "PA"
zip = "19608"
version: 0
created = new Date()
updated = new Date()
website = "http://www.yahoo.com"
deleted = false
}

CompanyServiceTestsSpringBeans.groovy - 为集成测试定义一个 bean
// Retrieve configured bean from 
Company someplace = ApplicationHolder.getApplication().getMainContext().getBean('somePlace')

CompanyServiceTests.groovy - 获取 bean somePlace在集成测试中...

调用 getBean('somePlace')在测试中会显示一个错误,显示为 No bean named 'somePlace' is defined CompanyServiceTests.groovy文件与我的集成测试一起存储,我应该将此文件存储在项目目录结构中的其他位置吗?

最佳答案

由于您的测试以使用类路径作为引用点不太重要的方式运行,您可能会尝试通过通过项目目录特定路径引用来加载 beans { ... } 文件。 (例如 $baseDir/test/resources/MyCustomBeans.groovy)或者如果您使用 JUnit4 注释,则通过 @BeforeClass 在测试中显式加载 bean:

def bb = new BeanBuilder()
def resource = new FileSystemResource('src/test/resources/testContext.groovy')
bb.loadBeans(resource)
appCtx = bb.createApplicationContext()
...

关于Grails中的Spring DSL-resources.groovy-不同文件中的bean配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7654315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com