Grails 测试默认值
我刚刚开始为Grails应用程序编写测试,我已经观看并阅读了这些测试,希望使用这些测试来检查约束是否设置正确 现在,在进行测试时,我认为还应该测试默认值是否正确(如果有人篡改了域对象,这有点像安全检查)。问题似乎是,如果我模拟一个对象,它将存在,但默认值尚未设置。有没有办法检查这个,或者我只是太谨慎了(拼写为“偏执狂”) 应该是这样的:Grails 测试默认值,grails,spock,Grails,Spock,我刚刚开始为Grails应用程序编写测试,我已经观看并阅读了这些测试,希望使用这些测试来检查约束是否设置正确 现在,在进行测试时,我认为还应该测试默认值是否正确(如果有人篡改了域对象,这有点像安全检查)。问题似乎是,如果我模拟一个对象,它将存在,但默认值尚未设置。有没有办法检查这个,或者我只是太谨慎了(拼写为“偏执狂”) 应该是这样的: class Event implements Taggable { ... Boolean publish ... static c
class Event implements Taggable {
...
Boolean publish
...
static constraints = {
...
publish nullable: true, defaultValue: true
...
}
}
及
这是不是因为DB没有参与(单元测试中没有可用的环境)来设置默认值?我只能在集成测试中执行此操作吗?您是正确的,您需要在集成测试中执行此操作,因为并非所有数据库组件都连接在单元测试中。是否应在约束或映射中提供
defaultValue:true
?
@TestMixin(GrailsUnitTestMixin)
@TestFor(Event)
class EventSpec extends Specification{
Event ev = new Event(start: new Date(), subProgram: new Subprogram(),venue: new Venue())
def setup() {
mockForConstraintsTests(Event)
}
def cleanup() {
}
void "publish ist default true"() { // cannot be tested ???
expect:
ev.publish
}