mockito @模仿/@为groovy注入模仿-斯波克

h43kikqp  于 2022-12-04  发布在  其他
关注(0)|答案(3)|浏览(106)

在JUnit / Mockito中,我们有两个非常有用的注解:@模拟和**@注射模拟**。
在我的新项目中,我开始使用groovy和spock进行测试,我想知道是否有一个替代提到的注解?

nxowjjhe

nxowjjhe1#

在Spock中并不真实的需要@Mock,因为已经有= Mock(),它可以在任何可以使用注解的地方使用(其他地方也有)。@InjectMocks有一个开放的拉取请求,但还没有决定这样的特性是否会进入spock-core或spock-guice。(将此特性与spock-guice一起提供,或者至少在类路径上需要Guice,将允许将注入委托给Guice,而不是重新发明轮子。)否则,@InjectMocks总是可以作为第三方Spock扩展提供。

643ylb08

643ylb082#

两个月前有人写了一段注解:https://github.com/msid256/MockInjector4Spock
您要测试的bean不需要手动示例化,您所需要做的就是将它声明为一个字段,并用@InjectMocks对其进行注解。

@Service
class ServiceC {
    @Autowired
    public ServiceC(ServiceA a, ServiceB b) {}
}

class DemoSpec extends Specification {
    @Autowired
    ServiceA serviceA;

    ServiceB serviceB = Mock(ServiceB.class)

    @InjectMocks // from MockInjector4Spock - de.github.spock.ext.annotation.InjectMocks
    ServiceC serviceC;
}
9jyewag0

9jyewag03#

https://github.com/marcingrzejszczak/spock-subjects-collaborators-extension
您可以使用@Collaborator@Subject,而不是@Mock@InjectMocks

相关问题