【问题标题】:Testing grails controller throws java.NullPointerException测试 grails 控制器抛出 java.NullPointerException
【发布时间】:2014-04-10 23:41:11
【问题描述】:

下一个测试失败,java.NullPointerException

package org.ttm

import grails.test.mixin.TestFor
import spock.lang.Specification

@TestFor(ActorController)
class ActorControllerSpec extends Specification {
    StageDataService stageDataService = Mock()

    void setup() {
        controller.stageDataService = stageDataService
    }

    void 'index returns list of stages'() {
        Long id = 20

        when:
        controller.index(id)

        then:
        1 * stageDataService.getActors(id)
    }
}

这里有什么问题?

这是 StackTrace:

'2014-04-10 22:22:31,471 [main] ERROR StackTrace  - Full Stack Trace:
'java.lang.NullPointerException
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)
    at org.codehaus.groovy.grails.orm.support.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:57)
    at org.ttm.ActorControllerSpec.index returns list of stages(ActorControllerSpec.groovy:18)
'2014-04-10 22:22:31,472 [main] ERROR StackTrace  - Full Stack Trace:
'java.lang.NullPointerException
    at org.ttm.ActorControllerSpec.index returns list of stages(ActorControllerSpec.groovy:18)
'2014-04-10 22:22:31,473 [main] ERROR StackTrace  - Full Stack Trace:
'java.lang.NullPointerException
    at org.ttm.ActorControllerSpec.index returns list of stages(ActorControllerSpec.groovy:18)
'2014-04-10 22:22:31,473 [main] ERROR StackTrace  - Full Stack Trace:
'java.lang.NullPointerException
    at org.ttm.ActorControllerSpec.index returns list of stages(ActorControllerSpec.groovy:18)
'2014-04-10 22:22:31,474 [main] ERROR StackTrace  - Full Stack Trace:
'java.lang.NullPointerException
    at org.ttm.ActorControllerSpec.index returns list of stages(ActorControllerSpec.groovy:18)
'2014-04-10 22:22:31,474 [main] ERROR StackTrace  - Full Stack Trace:
'java.lang.NullPointerException
    at org.ttm.ActorControllerSpec.index returns list of stages(ActorControllerSpec.groovy:18)
'2014-04-10 22:22:45,664 [main] ERROR StackTrace  - Full Stack Trace:

好的,我认为这可能是问题所在:http://jira.grails.org/browse/GRAILS-10538。我的控制器装饰有grails.transaction.Transactional 标签。解决方法是使用@Mock 标签模拟一个类。 Holly Molly Bugs。

【问题讨论】:

    标签: grails groovy spock


    【解决方案1】:

    很难说没有堆栈跟踪或任何东西,但1 * StageDataService.getActors(id) 绝对应该是@​​987654322@。

    【讨论】:

    • 你打败了我。 :)
    • 是的,它是stageDataService.getActors(id)。我编辑了问题以放置 StackTrace。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2014-09-14
    • 2019-06-01
    • 2012-03-31
    • 2015-01-07
    • 1970-01-01
    相关资源
    最近更新 更多