【发布时间】:2013-06-21 15:55:11
【问题描述】:
这不是一个问题,而是一个关于 grails 中通用单元测试的 cmets 请求。
我一直在努力反对编写单元测试,除了非常非常简单的用例之外,我总是遇到一些障碍。我发现任何时候需要模拟某些东西,比如 grailsApplication 或其他一些框架对象,单元测试就会开始崩溃,或者你需要跳过这么多的圈子,以至于它会适得其反。然后,除此之外,从 1.X 迁移到 2.X 导致各种单元/集成测试重构,从长远来看,这使事情变得更容易,但仍然导致迁移过程中的失败。
我的答案...将所有半复杂的测试转移到集成测试中,不要回头。当一切都旋转起来时,它就起作用了。运行需要更长的时间,但不会比处理单元测试的麻烦。
最新的,而不是第一个,导致我心痛的用例是尝试对创建域对象的服务进行单元测试,该对象依赖于 grailsApplication.config,并对所述域对象执行某些操作。我尝试了几乎所有我发现的东西来修复它(除了实际有效的!),没有任何效果,我将单元测试代码移动到集成测试,它在第一次运行时通过了。单元测试抱怨不能在空对象或类似的东西上调用“config”,这意味着 grailsApplication 不存在。
当集成测试始终适用于所有事情时,我真的认为没有必要编写单元测试。
使用 grails 2.2.0。
【问题讨论】:
标签: unit-testing grails