gpt4 book ai didi

grails - Grails编译但Groovy失败

转载 作者:行者123 更新时间:2023-12-02 14:33:01 24 4
gpt4 key购买 nike

我在Groovy控制台中测试了以下代码,但两者均按预期失败:
第一次测试:

class TekEvent {
Date organizer
}

def tekEvent = new TekEvent(organizer: 'John Doe')
assert tekEvent.organizer == 'John Doe'

Exception thrown
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'John Doe' with class 'java.lang.String' to class 'java.util.Date'

第二项测试:
class DifferentTekEvent {
String name
}

def tekEvent = new TekEvent(nameNot: 'John Doe')
assert tekEvent.nameNot == 'John Doe'
Exception thrown

groovy.lang.MissingPropertyException: No such property: nameNot for class: DifferentTekEvent

等效项在Grails中运行(即,类被实例化并在单元测试中使用),但不会引发异常。例如:
@TestFor(TekEvent)
class TekEventSpec extends Specification {

void "test"() {

def tekEvent = new TekEvent(organizer: 'aasdf') //no expceptions thrown here. Why?
expect:
tekEvent.organizer == 'aasdf'
}
}

我可以知道为什么存在差异吗?谢谢。

最佳答案

在Grails中,Data binding在构造域类时生效。

因此,不会引发任何异常,但是如果您在域实例上看到errors属性,则会在其中看到一些消息。

afaik,如果在您的示例中没有定义域类的属性(例如'nameNot'),它将简单地忽略该属性。

关于grails - Grails编译但Groovy失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21925805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com