簡體   English   中英

Grails單元測試控制器字段

[英]Grails unit test controller field

誰能告訴我什么控制器 .searchService, 控制器 .search()和控制器 .response.text.contains 控制器對象是指? 該控制器對象是如何創建的,其目的是什么?

import grails.test.mixin.TestFor
import spock.lang.Specification
@TestFor(BookController)
@Mock(Book)
class BookControllerSpec extends Specification {

    void "test search"() {
        given:
        def searchMock = mockFor(SearchService)
        searchMock.demand.searchWeb { String q -> ['first result', 'second result'] }
        searchMock.demand.static.logResults { List results ->  }
        controller.searchService = searchMock.createMock()

        when:
        controller.search()

        then:
        controller.response.text.contains "Found 2 results"
    }
}

controller是在@TestFor批注中指定的@TestFor Controller的實例。 在這種情況下,它是BookController 它由Grails創建,供您在單元測試中使用。

controller.searchService是BookController對SearchService bean的引用,您可以在給定的塊中進行模擬。

controller.search()正在調用BookController的search動作。

controller.response.text是操作寫入響應的文本輸出。

測試文檔適用於基於測試框架的最新版本,但是概念仍然相同。

暫無
暫無

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

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