簡體   English   中英

Grails:Controller單元測試,action的職責應該是什么?

[英]Grails: Controller unit test, what should the action's responsibility be?

在示例https://guides.grails.org/grails-controller-testing/guide/index.html中,應僅作為成功案例的有效載荷,但需要驗證有效負載才能驗證成功案例該行動實際上應該做什么?

例子:

class OneController {

    def list(OneCommand command) {

        if (command.hasErrors()) {

            render command.errors as JSON
            return
        }

        respond oneService.save(command.param1) as JSON
    }
}

如果命令有效,則必須調用 Stub(oneService.save()) 傳遞 command.param1 作為參數,返回必須是該服務的返回 JSON。

如果命令無效,它應該返回 command.errors 為 JSON。

在另一個單元測試中,測試 OneCommand。

在示例https://guides.grails.org/grails-controller-testing/guide/index.html中,應僅作為成功案例的有效載荷,但需要驗證有效負載才能驗證成功案例該行動實際上應該做什么?

提供有效的有效載荷並不是測試這一點的唯一方法,但它是一種常見的方法。

正在測試的代碼有 2 條路徑。 如果 command.hasErrors() 評估為true則觸發一條路徑,如果command.hasErrors() command.hasErrors()評估不為true則觸發另一條路徑。 測試應該涵蓋這些路徑中的每一個。 提供具有有效負載的測試和具有無效負載的測試是實現此目的的簡單方法。 還有其他方法,例如可以調用 controller 上的list方法並將模擬的OneCommand作為參數傳遞。

暫無
暫無

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

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