如何在Grails中测试非控制器/域/服务类。。

如何在Grails中测试非控制器/域/服务类。。,grails,testing,spock,Grails,Testing,Spock,我在sources/Groovy中定义了一个Groovy助手类,我正试图使用Spock对其进行测试。。我试图测试的类有一个对org.springframework.validation.Errors的引用,称为Errors 我定义了一个测试,它调用下面显示的一些代码 def validateSuppliedDocument() { // If we create one it's always valid .. if (txn.transactionType.aut

我在sources/Groovy中定义了一个Groovy助手类,我正试图使用Spock对其进行测试。。我试图测试的类有一个对org.springframework.validation.Errors的引用,称为Errors

我定义了一个测试,它调用下面显示的一些代码

def validateSuppliedDocument() {

      // If we create one it's always valid  ..

      if (txn.transactionType.autoCreateDocument) {
          return true
      } else {

          txn.documentHeader =
                  DocumentHeader.findByDocumentReferenceCodeAndDocumentType(txn.documentReferenceCode, txn.transactionType.associatedDocumentType)

          if (!txn.documentHeader) {
              errors.rejectValue('documentReferenceCode', "document.not.found",
                      [txn.documentReferenceCode].toArray(), 'Document not found')
              return false
          }
我的问题是由“errors.rejectValue”语句引起的,因为errors实例为null

我怎样才能让grails仅仅为了测试的目的而注入它?错误是一个接口,应该给它什么类

仅为获取信息,如果有帮助,此方法将作为字段上验证程序的一部分调用。。而且在生产中效果很好

谢谢

您可以创建一个for errors字段,并假设errors字段是公共的,只需在助手类实例中设置它。它应该与此类似:

import spock.lang.*
import org.springframework.validation.Errors

MyHelperClass myHelper = new MyHelperClass()
myHelper.errors = Mock(Errors)

作为补充问题。。我试图模拟错误。拒绝值方法。。错误。rejectValuedocumentReferenceCode,document.not.found,消息,document not found。。如何定义消息parm?我试过用绳子。。。但它失败了。。有人吗?我是。。。应为错误。rejectValuedocumentReferenceCode,document.not.found,消息为字符串。。