Class.metaclass.static说无法在null

时间:2015-12-16 16:29:31

标签: unit-testing grails spock grails-2.3

编写单元测试用例时,我需要做一些元编程来测试下面的方法。

 void "test method:resolver"(){
        setup:"mocked resolver"
        ContextHolder.getMetaClass().static.getBean = {
            Resolver resolver = Mock(Resolver)
            resolver(_) >> {HttpServletRequest request1->
                return 1;
            }
        }

        and:"mocked getAppName"
        CoreUtil.metaClass.static.getAppName = {
            return "$apiName"
        }

        when:
        UserGroupRole userGroupRole = service.resolve(username)

        then:
        userGroupRole != null

        where:
         apiName            || username
        "core-blog"      || "test11"
    }

以下是我运行测试用例时遇到的情况:

  • 单独运行测试用例时,效果非常好。
  • 当运行测试用例作为一个整体规范,即运行规范类本身,它完美地工作
  • 但是当通过
  • 运行整个测试用例时
  

grails test-app:unit

它无法说Class.metaclass.static say can not get static on null

请帮忙!

0 个答案:

没有答案