Grails:Spock:单元测试GORM域类挂钩

时间:2015-11-25 07:58:10

标签: unit-testing grails gorm spock

通常我最终会编写一个Domain的测试用例来编写约束和任何自定义方法(由我们在应用程序中创建),因为我们知道我们不应该测试明显的。

但是当我们开始使用coverage插件时,我们发现我们的域代码行没有完全覆盖,这是由于我们从未为其编写测试用例的gorm hooks(onInsert,beforeUpdate)。

我们有没有办法测试这些。一种看似显而易见但不适合的可能方法是在这些钩子中调用另一个方法(包含钩子中较早的所有代码)并仅测试该方法并且对钩子无忧无虑。

任何解决方案......

修改

我想要进行单元测试的域中的示例代码:

class TestDomain{
   String activationDate
   def beforeInsert() {
      this.activationDate = (this.activationDate) ?: new Date()//first login date would come here though
      encodePassword()
   }
}

如何对beforeInsert进行单元测试,或者我最终会编写集成测试用例?

1 个答案:

答案 0 :(得分:3)

也许像单位测试一样:

NSString *sourceApplication = options[UIApplicationOpenURLOptionsSourceApplicationKey];
return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                          openURL:url
                                                sourceApplication:sourceApplication
                                                       annotation:nil];