如何在Java中模拟使用映射结构的类?

如何在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

使用MAPSTRUCT的Java类我们在接口中有静态变量实例,这个接口实现是在运行时创建的。那么,如何在Java中模拟使用MAPSTRUCT的类呢

    @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
的模拟?