grails - 在grails的单元测试期间如何在控制器中使用初始化服务?
问题描述
我从Grails 3.3.8中的单元测试开始,我有ControllerSpec:
class FooControllerSpec extends Specification implements ControllerUnitTest<FooController> {
void "test index"() {
given:
controller.fooService = new FooServiceImplementation()
when:
controller.index()
then:
response.json
status == 200
}
void "test show"() {
given:
controller.fooService = new FooServiceImplementation()
when:
params['id'] = '000001400'
controller.show()
then:
status == 200
}
}
FooService是一个接口,没有实现。
@Service(Foo)
interface FooService {
Foo get(Serializable id)
List<Foo> list(Map args)
}
我像这样创建一个FooServiceImplementation:
class FooServiceImplementation implements FooService {
Foo get(Serializable id) {/*implementation here*/}
List<Foo> list(Map args) {/*implementation here*/}
}
这实际上可行,但是还有另一种形式来初始化我的控制器中的服务吗?我想将 FooService 与 grails 在将服务注入控制器时将编译的实现完全结合使用,以确保执行期间的结果与测试期间的结果相同,因为我的 FooServiceImplementation 可能会产生不同的结果,尽管我想你应该正确地编写实现。
解决方案
推荐阅读
- html - 四周有白边
- r - 来自数据框的堆积条形图
- pyspark - pyspark数据框检查字符串是否包含子字符串
- assembly - “byte ptr X”作为 TASM 中的操作数?
- python - Pylab get_patch() 给出属性错误
- python - 根据同一行中的值提取单个值(熊猫)
- google-apps-script - 想添加电子邮件发送功能,以防我的临时工超过 8 个
- reactjs - 重定向到 Next.js 中的不同页面时如何触发硬刷新?
- python - 不和谐循环出错,通道发送
- php - Laravel Format AllDirectories() 输出到树中