第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ContextRefreshedEvent 在 Spring 集成測試中過早觸發(fā)

ContextRefreshedEvent 在 Spring 集成測試中過早觸發(fā)

狐的傳說 2021-09-03 10:09:35
我想測試一個像Example這樣處理 aContextRefreshedEvent并在處理程序方法中連接到服務(wù)器的類:public class Example {    @EventListener    public void onApplicationEvent(ContextRefreshedEvent event) {        startWebSocketConnection();    }    // ...}但是在集成測試中,應(yīng)用程序上下文是在 Web 套接字服務(wù)器啟動并運行之前構(gòu)建的,所以我收到一個異常,說連接失?。╦ava.net.ConnectException: Connection refused: no further information在這種情況下)。測試看起來像這樣:@ExtendWith(SpringExtension.class)@TestInstance(TestInstance.Lifecycle.PER_CLASS)@SpringBootTestpublic class WebSocketDataSourceTest {    @Autowired     private Example example;    @Autowired    private WebSocketServer server; // created too late    // ...}是否有可能以某種方式抑制ContextRefreshedEvent或推遲應(yīng)用程序上下文的創(chuàng)建,以便 Web 套接字服務(wù)器可以在此之前啟動?或者還有其他解決方案嗎?
查看完整描述

1 回答

?
白板的微信

TA貢獻1883條經(jīng)驗 獲得超3個贊

似乎沒有辦法抑制 Spring 框架觸發(fā)的事件或推遲應(yīng)用程序上下文的創(chuàng)建。所以我想出了以下解決方法:


import org.springframework.core.env.Environment;


public class Example {


    private boolean skipNextEvent;


    @Autowired

    public Example(Environment environment) {

        skipNextEvent = environment.acceptsProfiles("test");

    }


    @EventListener

    public void onApplicationEvent(ContextRefreshedEvent event) {

        if (skipNextEvent) {

            skipNextEvent = false;

            return;

        }

        startWebSocketConnection();

    }


    // ...

}

測試手動觸發(fā)事件處理程序。


@ExtendWith(SpringExtension.class)

@TestInstance(TestInstance.Lifecycle.PER_CLASS)

@SpringBootTest

@ActiveProfiles("test") // set profile "test"

public class WebSocketDataSourceTest {


    @Autowired 

    private Example example;


    @Autowired

    private WebSocketServer server;


    @Test

    public void shouldWork() {

        // ...

        example.onApplicationEvent(null); // trigger manually

        // ...

    }

}


查看完整回答
反對 回復(fù) 2021-09-03
  • 1 回答
  • 0 關(guān)注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號