WEB开发网
开发学院软件开发Java 精通 Grails: 使用 Grails 进行单元测试(单元测试... 阅读

精通 Grails: 使用 Grails 进行单元测试(单元测试提速)

 2009-11-26 00:00:00 来源:WEB开发网   
核心提示: 重新运行此测试,它还会意外地失败吗?查看报告输入(如图 3 所示),精通 Grails: 使用 Grails 进行单元测试(单元测试提速)(6),找出问题根源: 图 3. 用空值替代空格导致的失败图片看不清楚?请点击这里查看原图(大图),错误消息为 expected:<[blank]>

重新运行此测试。它还会意外地失败吗?查看报告输入(如图 3 所示),找出问题根源:


图 3. 用空值替代空格导致的失败
精通 Grails: 使用 Grails 进行单元测试(单元测试提速)

图片看不清楚?请点击这里查看原图(大图)。

错误消息为 expected:<[blank]> but was:<[nullable]>。验证失败了,但原因并不是您所期望的那样。

很容易遇到这种错误。在 Grails 中,默认情况下,域类中的所有字段必须非空。这项隐含限制的问题在于,您通常会通过 HTML 表单与 Grails 交互。如果在 HTML 表单中将 String 字段保留为空,paramsMap 中的控制器会将其看作空 String(也就是 ""),而不是 null。

如果单击 HTML 报告底部的 System.out 链接,可以看到 3 个 String 字段(name、login 和 password)都抛出了 nullable 约束违规错误。图 4 显示了 println 调用的输出。只有 role 字段 — 其默认值为 user — 通过隐含的 nullable 约束。


图 4. 测试的 System.out 输出
精通 Grails: 使用 Grails 进行单元测试(单元测试提速)

图片看不清楚?请点击这里查看原图(大图)。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:精通 Grails 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接