我在sources / groovy中定义了一个Groovy帮助器类,我正在尝试使用Spock进行测试。我正在尝试测试的类有一个对org.springframework.validation.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'语句引起的,因为错误实例为null ..
如何才能将Grails注入此类仅用于测试目的,以及应该给出哪个类,Errors是一个接口?
仅供参考信息此方法作为字段上的验证器的一部分被调用(如果有帮助..)并且在生产中正常工作..
谢谢
答案 0 :(得分:0)
您可以为errors
字段创建mock,只需在帮助程序类实例中设置它(假设errors
字段是公共的)。它应该类似于:
import spock.lang.*
import org.springframework.validation.Errors
MyHelperClass myHelper = new MyHelperClass()
myHelper.errors = Mock(Errors)