[英]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.