簡體   English   中英

Grails中的Spring DSL-resources.groovy-Bean配置在其他文件中嗎?

[英]Spring DSL in Grails - resources.groovy - bean configuration in a different file?

這個問題已經以某種方式存在 ,但是現有的問題缺少一些重要的鏈接。

我正在嘗試將測試用bean的配置移到以*TestsSpringBeans.groovy結尾的單獨文件中

閱讀Groovy文檔中的“從文件系統加載Bean定義” (搜索)之后,我嘗試執行此操作。

以下是相關的代碼段:

import grails.util.*

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

resources.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文件與集成測試一起存儲,我是否應該將此文件存儲在項目目錄結構中的其他位置?

由於測試以使用類路徑作為參考點不太重要的方式運行,因此您可以嘗試通過項目目錄特定路徑進行參考來加載bean {...}文件。 (例如$ 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()
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM