gpt4 book ai didi

unit-testing - Grails项目设置和约定-测试不是真正服务的spring组件

转载 作者:行者123 更新时间:2023-12-02 14:08:23 26 4
gpt4 key购买 nike

首先,我不得不说,与Spring相比,我拥有更多的背景知识,而当您没有这些卡时,稍后在配置方面的约定有点令人不安。

考虑一个grails项目。

如果我有一个“组件”(在 Spring 上下文中为POJO的 Spring 术语),它实际上不是服务,而是另一个对象的一部分,我应该放在哪里?在src / groovy或grails / services中?
看起来第二种选择使我有更多编写测试的能力,并且Grails将Service视为:

Services in Grails are the place to put the majority of the logic in your application



我觉得grails / services目录是所有Springified bean的包...

下一个问题,如果我在Spring上下文中需要一些同伴bean来表示服务,那么如何 单元来测试我的组件/服务。
该伴随项不是服务,而是其他在运行时必需但我可以使用默认实现的组件。

在spring中,我可以简单地使用这种注释为测试创建一个小的上下文:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/simple-job-launcher-context.xml",
"/jobs/skipSampleJob.xml" })

如何用Grails做同样的事情?
我想知道是否有一种首选的方式来创建一个小的Spring上下文,可以像在 @ContextConfiguration 批注中那样对测试进行重用和组合。

对于所有隐藏的grails约定,我担心使用的方式不正确(如果存在的话),但是对它们的清晰解释使我倾向于直接使用Spring。

最佳答案

将其放在src / groovy或src / java中(取决于实现语言)是一种常见的方法,根据我的经验,效果很好。

就单元测试而言,如果您需要“companion bean”来进行测试,那么它并不是真正的单元测试。 mock 对象怎么样?有许多可以与grails一起使用的模拟/测试库-Spock是我个人的最爱。

关于unit-testing - Grails项目设置和约定-测试不是真正服务的spring组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13129227/

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