测试 – Grails GORM要测试多少?
发布时间:2020-12-13 20:11:29 所属栏目:百科 来源:网络整理
导读:是否有“最佳实践”或事实标准,在单元/功能测试中应测试多少GORM功能? 我的看法是,应该将大多数域测试作为功能测试,以便您获得完整的grails环境.但你测试什么?插入,更新,删除?您是否测试了约束,即使它们可能已经通过grails发布进行了更彻底的测试? 或者
是否有“最佳实践”或事实标准,在单元/功能测试中应测试多少GORM功能?
我的看法是,应该将大多数域测试作为功能测试,以便您获得完整的grails环境.但你测试什么?插入,更新,删除?您是否测试了约束,即使它们可能已经通过grails发布进行了更彻底的测试? 或者你只是假设GORM做了它应该做的事情并转移到应用程序的其他部分?
我的一般规则是测试我写的东西.因此,如果我编写自定义方法(或闭包),那么我将对它们进行单元测试.这个规则也意味着我会在编写约束之后测试约束.为此我在GrailsUnitTestCase中使用mockForConstraintsTests()方法.
示例约束块: static constraints = { location(blank:true,nullable:true) make(blank:false,nullable:false) name(blank:false,nullable:false) serviceTag(nullable:true) purchaseDate(blank:false,nullable:false) checkedDate(blank:false,nullable:false) warrantyExpirationDate(nullable:true) notes(blank:true,nullable:true) } 我会有以下约束单元测试: void test_null_constraints_are_checked() { mockForConstraintsTests(Hardware) def hardware = new Hardware() assertFalse hardware.validate() assertEquals 4,hardware.errors.getFieldErrorCount() assertEquals "nullable",hardware.errors["name"] assertEquals "nullable",hardware.errors["checkedDate"] assertEquals "nullable",hardware.errors["purchaseDate"] assertEquals "nullable",hardware.errors["make"] } 这将立即捕捉我的约束的任何拼写错误. 我不测试域中的保存,创建,删除;如果这些失败那么我就有更大的问题! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |