【问题标题】:mock domain class created by another domain class with spock由另一个域类使用 spock 创建的模拟域类
【发布时间】:2013-10-07 16:26:17
【问题描述】:

我正在尝试测试一个名为 EnityContact 的域类。在该类中有一个名为 initialize 的方法,它在需要时填充一些字段。为了做到这一点,该方法创建了一些其他域类的实例:AisUser、Entity 和 CPerson。 AisUser 是调用 SecurityUtil.retrieveCurrentAisUser(false) 返回的域类。

class EntityContact extends BaseObject implements Initializable{

    ....

    @Override
    void initialize() {
        println "initaliazing"
        isMain = false
        creationDate = new Date()
        createdBy = CPerson.get(SecurityUtil.retrieveCurrentAisUser(false).id)
        entity = new Entity()
        entity.setId(Long.valueOf(0)) //Id has to be initialized with some value
    }
}

我想做的是找到一种方法来返回我在规范中定义的那些类的模拟。

有什么想法吗?

【问题讨论】:

    标签: unit-testing grails grails-domain-class spock


    【解决方案1】:

    在 Groovy 中 you can mock static methods using MetaClass.

    SecurityUtil.metaClass.'static'.retrieveCurrentAisUser = { boolean param ->
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多