在控制器的单元测试用例中,我只能注入相应控制器中使用的服务.但是如果控制器中的一个服务注入另一个服务,那么我的测试用例就会失败,即无法调用null对象上的服务方法.
@TestFor(MyController)
@Mock(MyService)
class MyControllerSpec extends Specification {
void "test something"(){
when:
controller.method1();
then:
//something
}
}
class MyController(){
MyService myService
void method1(){
myService.serviceMethod()
}
}
class MyService(){
AnotherService anotherService
void serviceMethod(){
anotherService.anotherServiceMethod()
}
}
class AnotherService(){
void anotherServiceMethod(){
\\something
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我无法在null对象上调用"anotherServiceMethod".有没有办法测试这种类型的控制器?在其他服务中注入服务是一种好方法吗?
我有一个groovy/grails jar文件.我想将它反编译成groovy文件.有没有工具可以做到这一点.我已经尝试了一些在线decopilers,他们都将文件解压缩到java而不是groovy.我使用gradle jar命令创建了jar .我使用的是grails版本3.1.11和groovy版本:2.4.7和gradle版本:2.13