如何在Java中模拟使用映射结构的类?
使用MAPSTRUCT的Java类我们在接口中有静态变量实例,这个接口实现是在运行时创建的。那么,如何在Java中模拟使用MAPSTRUCT的类呢如何在Java中模拟使用映射结构的类?,java,mockito,powermock,mapstruct,Java,Mockito,Powermock,Mapstruct,使用MAPSTRUCT的Java类我们在接口中有静态变量实例,这个接口实现是在运行时创建的。那么,如何在Java中模拟使用MAPSTRUCT的类呢 @Mapper 1 public interface CarMapper { CarMapper INSTANCE = Mappers.getMapper( CarMapper.class ); 3 @Mapping(source = "numberOfSeats", target = "seatC
@Mapper 1
public interface CarMapper {
CarMapper INSTANCE = Mappers.getMapper( CarMapper.class ); 3
@Mapping(source = "numberOfSeats", target = "seatCount")
CarDto carToCarDto(Car car); 2
}
public class A
{
public CarDto getCardto()
{
CarDto carDto = CarMapper.INSTANCE.carToCarDto(car);
return carDto;
}
}
如何为类A创建mock?如果你想模拟类
A
那么你可以只做Mockito.mock(A.class)
如果你想模拟类A
那么你可以只做Mockito.mock(A.class)
请给出一些代码看看,你的描述远远不够。而且“MAPSTRUCT”不是我所知道的任何东西;包含一些代码的另一个原因。如果您使用的是静态变量INSTANCE
,则表示您使用的是默认的componentModel
。你为什么要嘲笑这样一门课?您不必在接口中使用静态变量,也可以在另一个地方(您需要它的地方)创建它。您可以看看代码吗?首先,MapStruct是一个注释处理器,因此它在编译时而不是运行时创建实现类。看看代码,我的答案仍然有效。请给我一些代码看看,你的描述远远不够。而且“MAPSTRUCT”不是我所知道的任何东西;包含一些代码的另一个原因。如果您使用的是静态变量INSTANCE
,则表示您使用的是默认的componentModel
。你为什么要嘲笑这样一门课?您不必在接口中使用静态变量,也可以在另一个地方(您需要它的地方)创建它。您可以看看代码吗?首先,MapStruct是一个注释处理器,因此它在编译时而不是运行时创建实现类。查看代码,我的答案仍然有效。据我所知,当模拟CarMapper.INSTANCE时,它会抛出ClassNotFoundException,因为我们没有在运行时生成任何CarMapperImpl。为什么需要模拟CarMapper.INSTANCE?模拟类A意味着完全重写getCardto()
,因此无需担心实例对象。同样,CarMapperImpl
是在编译时生成的,而不是在运行时生成的。Ray的注释是有效的。实例
对象如何干扰对A
的模拟?我知道,当模拟CarMapper.INSTANCE时,它抛出ClassNotFoundException,因为我们没有在运行时生成的任何CarMapperImpl。为什么需要模拟CarMapper.INSTANCE?模拟类A意味着完全重写getCardto()
,因此无需担心实例对象。同样,CarMapperImpl
是在编译时生成的,而不是在运行时生成的。Ray的注释是有效的。实例
对象如何干扰对A
的模拟?