【问题标题】:Using groovy to mock wrapped class使用 groovy 模拟包装类
【发布时间】:2009-06-18 16:13:42
【问题描述】:

我目前正在尝试回过头来为一些包装现有类的代码编写单元测试。我正在寻找的函数的代码如下所示...

private OldObject oldObject
...
public Boolean method(){
  Boolean returnValue = false
  if(oldObject.method(100)){
    returnValue = true  
  }
  if(oldObject.method(101)){
    returnValue = true
  }
}

我曾考虑过使用元类,例如 OldObject.metaClass.method{return true},但我不确定如何在下一次测试之前将其删除。

有人对这种情况有最佳实践/帮助吗?

【问题讨论】:

    标签: unit-testing groovy mocking


    【解决方案1】:

    要模拟方法使用:

    OldObject.metaClass.method = {return true}
    

    请注意,这将模拟 所有 OldObject 实例的方法,但也可以仅模拟单个实例的方法。当您想删除模拟方法时,只需将 metaClass 设置为 null:

    OldObject.metaClass = null
    

    我认为您至少需要使用 Groovy 1.6 才能使其工作。

    【讨论】:

      猜你喜欢
      • 2019-08-29
      • 2014-04-02
      • 2012-08-23
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多