@Mock/@InjectMocks用于时髦 - spock
在JUnit / Mockito中,我们有2个非常有用的注释:@Mock和@InjectMocks。
在我的新项目中,我开始使用groovy和spock进行测试,我想知道是否有上述注释的替代品?
在JUnit / Mockito中,我们有2个非常有用的注释:@Mock和@InjectMocks。
在我的新项目中,我开始使用groovy和spock进行测试,我想知道是否有上述注释的替代品?
在斯波克中没有真正的需要,因为已经有 ,可以在任何可以使用注释的地方使用(也可以在其他地方使用)。有一个开放的拉取请求,但尚未决定这样的功能是否会使其成为spock-core或spock-guice。(使用 spock-guice 提供此功能,或者至少需要在类路径上提供 Guice,将允许将注入委托给 Guice,而不是重新发明轮子。如果没有,则始终可以作为第三方Spock扩展提供。@Mock
= Mock()
@InjectMocks
@InjectMocks
两个月前,有人写了一篇注释: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;
}