簡體   English   中英

Grails單元測試導致空實例

[英]Grails unit test resulting in null instance

我正在嘗試進行單元測試以用於腳手架。 我對原始腳手架模板進行了一些更改,以滿足我的應用程序所需。 這是測試的代碼:

void "Test that the show action returns the correct model"() {
    when:"A domain instance is passed to the show action"
        populateValidParams(params)
        def domainName = new DomainName(params)
        controller.show(domain.toString())

    then:"A model is populated containing the domain instance"
        model.domainNameInstance == domainName
}

這是show操作的代碼,其中我根據id中的兩個值從數據庫中獲取域實例,該id是由控制器內的toString方法創建的:

def show(String id){
    if (id!=null){
        def (term, college)=id.split('_')
        DomainName domainNameInstance
        respond domainNameInstance=DomainName.findByVal1AndVal2(val1, val2)
    }else{
        response.sendError(HttpServletResponse.SC_NOT_FOUND)
    }
}

我遇到的問題是,當我運行測試時,測試中domainInstance為null,而域返回正確的值。 有人知道我需要做些什么才能使測試內的domainInstance不為null嗎? 作為參考,我正在使用Grails 2.4.3和Scaffolding 2.1.2插件。

在單元測試中,您需要保存要創建的DomainName實例。 您的show動作正在查詢數據庫,但是您沒有持久化測試實例。

暫無
暫無

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

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