2017-06-15 9 views
-1

MAPSTRUCTを使用するJavaクラスは、インタフェース内に静的変数INSTANCEを持ち、このインタフェース実装は実行時に作成されます.JavaでMap Structを使用するクラスをモックする方法は?JavaでMap Structを使用するクラスをモックする方法は?

@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の模擬作成方法は?

+0

ご覧になるにはいくつかのコードを書いてください。また、 "MAPSTRUCT"は私が知っているものではありません。いくつかのコードを含む別の理由。 –

+0

静的変数 'INSTANCE'を使用している場合は、デフォルトの' componentModel'を使用していることを意味します。なぜあなたはそのようなクラスを模擬する必要がありますか?インターフェースで静的変数を使用する必要はなく、別の場所(必要な場所)に作成することもできます。 – Filip

+0

コードを見ることができますか? –

答えて

0

Aのクラスをモックしたい場合は、Mockito.mock(A.class)を実行してください。

+0

私が知っているのは CarMapper.INSTANCEを嘲笑するときに、 は実行時に生成されたCarMapperImplを持っていないのでClassNotFoundExceptionをスローします。 –

+0

なぜCarMapper.INSTANCEをモックする必要がありますか?クラスAを嘲笑することは、 'getCardto()'を完全にオーバーライドすることを意味するので、INSTANCEオブジェクトについて心配する必要はありません。 – Ray

+0

この場合も 'CarMapperImpl'は実行時ではなくコンパイル時に生成されます。 Rayからのコメントは有効です。 'INSTANCE'オブジェクトは' A 'の嘲笑にどのように干渉しますか? – Filip