如何在扩展Spock规范的Groovy类中模拟Java可选类
我有一个非常简单的春假服务。下面是我的Java ServiceImpl类:-如何在扩展Spock规范的Groovy类中模拟Java可选类,java,spring-boot,rest,groovy,spock,Java,Spring Boot,Rest,Groovy,Spock,我有一个非常简单的春假服务。下面是我的Java ServiceImpl类:- 服务Impl类=> @AllArgsConstructor(onConstructor = (@__(@Autowired))) public Class ServiceImpl implements ServiceClass { private ServiceRepository repo; private MapstructRequestMapper1 mapper1; privat
@AllArgsConstructor(onConstructor = (@__(@Autowired)))
public Class ServiceImpl implements ServiceClass {
private ServiceRepository repo;
private MapstructRequestMapper1 mapper1;
private Optional<Pojo1> pojo1;
@Override
public Optional<Pojo1> getSomething(Pojo2 pojo2, String someString){ return repository.findById(Id)};
@Override
public SomeResponse createSomething(Pojo2 pojo2, String someString){
pojo1 = getSomething(someString); //This Returns an Optional object.
if(pojo1.ifPresent(pojo1-> {
//set something with pojo1's attributes and then do something.
});
)
}
}
错误=>如果我尝试将def requestTestObj=Mock(Pojo1)作为可选项则会出现以下两个错误:-
谢谢。您不能通过常规方式直接模拟类
可选
,因为类是最终类,而Spock模拟基于动态代理,即子分类。但是模仿Pojo1
并将其包装成一个可选的怎么样
def requestTestObj=Mock(Pojo1)
def service=new serviceinpl(ref,mapperRef1,可选。of(requestTestObj))
像往常一样,您可以存根POJO的方法,验证某些方法是否被调用过多次等等
def ref = Mock(Servicerepo)
def mapperRef1 = Mock(MapstructRequestMapper1)
//This is where I am stuck
def requestTestObj = Mock(Pojo1)
def service = new ServiceImpl(ref,mapperRef1, requestTestObj) //This is where it fails.
def "myTest - some bla" () {
}
}