【问题标题】:How to test with DomainUnitTest when multiTenancy多租户时如何使用 DomainUnitTest 进行测试
【发布时间】:2018-02-25 20:58:36
【问题描述】:

当我使用多租户时如何测试域类?

我可以看到我需要用 HibernateSpec 扩展并覆盖 getConfiguration。

当我使用 ServiceUnitTest 但不适用于 DomainUnitTest 时这没问题

简单示例: application.yml 设置为:

grails:
    gorm:
        multiTenancy:
            mode: DISCRIMINATOR
            tenantResolverClass: security.CompanyTenantResolver

我的测试:

class TestSpec extends HibernateSpec implements DomainUnitTest<Test>{
    void "expect ok test"() {
        expect:
        true
    }
    def setup() {
        System.setProperty(SystemPropertyTenantResolver.PROPERTY_NAME, 'unit-test')
    }

    def cleanup() {
        System.setProperty(SystemPropertyTenantResolver.PROPERTY_NAME, '')
    }


    @Override
    Map getConfiguration() {
        [(Settings.SETTING_MULTI_TENANT_RESOLVER_CLASS): SystemPropertyTenantResolver]
    }

}

无论我尝试什么,我都会得到:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.grails.beans.ConstraintsEvaluator': Cannot resolve reference to bean 'grailsDomainClassMappingContext' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'grailsDatastore': Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.grails.datastore.mapping.simple.SimpleMapDatastore]: Constructor threw exception; nested exception is org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [java.lang.Class<?>]

是grails中的错误还是忘记了什么?

【问题讨论】:

    标签: grails grails-orm spock


    【解决方案1】:

    这是 grails 3.3.2 版中的一个错误,在 3.3.0 版中可以正常工作

    【讨论】:

      猜你喜欢
      • 2012-11-02
      • 2021-12-08
      • 2021-07-04
      • 2015-10-08
      • 1970-01-01
      • 2018-07-20
      • 2015-07-03
      • 2014-02-14
      • 1970-01-01
      相关资源
      最近更新 更多