Grails 单元测试控制器领域
Grails unit test controller field
谁能告诉我 controller 中的 controller 对象是什么,controller。 search() 和 controller.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
注释中指定。在本例中,它是 BookController
。它由 Grails 创建,供您在单元测试中使用。
controller.searchService
是 BookController 对您在给定块中模拟的 SearchService bean 的引用。
controller.search()
正在调用 BookController 的 search
操作。
controller.response.text
是操作写入响应的文本输出。
Testing docs 适用于最新的基于特征的测试框架版本,但概念仍然相同。
谁能告诉我 controller 中的 controller 对象是什么,controller。 search() 和 controller.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
注释中指定。在本例中,它是 BookController
。它由 Grails 创建,供您在单元测试中使用。
controller.searchService
是 BookController 对您在给定块中模拟的 SearchService bean 的引用。
controller.search()
正在调用 BookController 的 search
操作。
controller.response.text
是操作写入响应的文本输出。
Testing docs 适用于最新的基于特征的测试框架版本,但概念仍然相同。