안녕 난과 같이 ApiService라는 서비스를 사용 ApiController라는 컨트롤러를 가지고있다. 그러나 테스트를 작성할 수는 없습니다.는 Grails의 스팍 테스트 컨트롤러 및 서비스
이것은 내가 가지고 얼마나 멀리이다 : 나는 다음과 같은 오류가 이로부터
@TestFor(ApiController)
@Mock([Category,ApiService])
class CategorySpec extends Specification {
def setup() {
}
def cleanup() {
}
void "test"() {
setup:
def apiService = Mock(ApiService)
when:
request.method = 'POST'
request.requestMethod = 'POST'
params.categoryID = 'test'
controller.createCategory()
then:
println(response)
1==1
}
: 그것은 내 apiService 빈을 볼 수 없기 때문에
java.lang.NullPointerException: Cannot invoke method createCategory() on null object
이 분명히입니다. 그래서 제 질문은 Spock에서 어떻게해야합니까?
when:
def serviceMock = mockFor(ApiService)
serviceMock.demand.createCategory { def params -> "output sample" }
controller.apiService = serviceMock.createMock()
controller.createCategory()
createCategory()를 사용하는 컨트롤러가 ... ... 또는 해당 컨트롤러의 자세한 구조를 어떻게 제공합니까? –