Получение ошибки, Spring BeanCreationException: Ошибка создания бина с именем 'validateableConstraintsEvaluator' - PullRequest
1 голос
/ 07 марта 2019

Я обновил свой проект с grails2.5.6 до grails3.3.9 и успешно завершил модульное тестирование.
При выполнении интеграционного теста я получаю следующее исключение.

2019-03-07 18:26:12.169  WARN --- [           main] o.s.test.context.TestContextManager      : Caught exception while allowing TestExecutionListener [org.spockframework.spring.SpringMockTestExecutionListener@157b7da6] to process 'before' execution of test method [public void com.mdw360.sec.UserControllerSpec.$spock_feature_0_1()] for test instance [com.mdw360.sec.UserControllerSpec@36f464d8]

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'validateableConstraintsEvaluator': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException: Cannot get property 'config' on null object
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:185)
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1646)

Контроллер

@Transactional(readOnly = true)
class UserController {

    def userCache
    def springSecurityService
    def utilityService

    static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]


    def create() {
        List<Role> roles = Role.list()
        Map roleMap = [:]
        roles.each { role -> roleMap[role] = false }
        render view: 'create', model: [userCO: new SaveUserCO(), roleMap: roleMap]
    }

......
......
}

TestClass

import grails.gorm.transactions.Rollback
import grails.testing.mixin.integration.Integration
import org.springframework.beans.factory.annotation.Autowired
import spock.lang.Specification

@Integration
@Rollback
class UserControllerSpec extends Specification {
    @Autowired
    UserController controller
}

    def cleanup() {
    }

    void "test create render correct view and model when no role exists"() {
        when:
        controller.request.method='POST'
        controller.create()

        then:
        assert controller.modelAndView.viewName == '/user/create'
        assert controller.modelAndView.model.size() == 2
        assert controller.modelAndView.model.roleMap.size() == 0
        assert controller.modelAndView.model.userCO != null
    }

    void "test create render correct view and model when role exists"() {
        when:
        controller.request.method='POST'
        createRole('ROLE_TEST')
        controller.create()

        then:
        assert controller.modelAndView.viewName == '/user/create'
        assert controller.modelAndView.model.size() == 2
        assert controller.modelAndView.model.roleMap.size() == 1
        assert controller.modelAndView.model.userCO != null
    }
...
....
}

Я использую Grails 3.3.9 с JDK 1.8, gormVersion 6.1.11 и gradle3.5

...