2017-03-09 14 views
0

Spring Initializer、埋め込みTomcat、Thymeleafテンプレートエンジン、およびパッケージを実行可能なJARファイルとして使用して、Spring起動Webアプリケーションを生成しました。使用Spring起動の模擬処理

技術:私が持っている

春ブーツ1.4.2.RELEASE、春4.3.4.RELEASE、Thymeleaf 2.1.5.RELEASE、Tomcatの埋め込み8.5.6、Mavenの3、Javaの8

これらのクラス:

package com.tdk.helper; 


@Component 
public class BookMessageDecoder implements MessageDecoder { 

    private String messageData; 



    public BookMessageDecoder() { 
     super(); 
    } 


    /** 
    * @param data4 
    */ 
    public BookMessageDecoder(String messageData) { 
     this.messageData=messageData; 
    } 
.. 
} 

@RestController 
public class BookCallBackController { 


    BookSystemManager bookSystemManager; 

    @Autowired 
    BookMessageDecoder messageDecoder; 

    @Autowired 
    public BookCallBackController(BookSystemManager bookSystemManager) { 
     this.bookSystemManager = bookSystemManager; 
    } 

.. 
} 


@RunWith(SpringRunner.class) 
public class BookCallBackControllerTests { 

    @MockBean 
    BookMessageDecoder messageDecoder; 


    private BookCallBackController controller; 

    @Before 
    public void setUp() throws Exception { 

     given(this.messageDecoder.hasAlarm()).willReturn(false); 

     controller = new BookCallBackController(new StubBookSystemManager()); 

    } 
.. 
} 

私はそれを使用すると、豆bookMes​​sageDecoderを嘲笑しています、それはnullです!

答えて

0

コントローラテストでは、いつでもスプリング@WebMvcTest(BookCallBackController.class)注釈を使用できます。 また、あなたのコントローラに模擬Httpリクエスト用のmockMvcを設定する必要があります。 その後、あなたは今、あなたはあなたが@MockBean BookMessageDecoder messageDecoder;

@RunWith(SpringRunner.class) 
@WebMvcTest(BookCallBackController.class) 
@AutoConfigureMockMvc 
public class BookCallBackControllerTests { 

    @MockBean 
    BookMessageDecoder messageDecoder; 

    @Autowired 
    MockMvc mockMvc; 

    @Before 
    public void setUp() throws Exception { 

     given(this.messageDecoder.hasAlarm()).willReturn(false); 

    } 


.. 
} 
をコントローラに依存関係モックできmockMvc @Autowired MockMvc mockMvc; をautowireすることができます