2016-09-01 69 views
0

給定功能的連接上處理請求的函數體的函數是一個無限循環:單元測試包含一個無限循環

def handle_connection(): 
    # initialize stuff 
    ... 

    while True: 
     # stuff to get the request 
     ... 

     # stuff to handle the request 
     ... 

我將如何單元測試這個功能呢?

+1

發送請求並查看回復。就像所有其他測試一樣。 – stark

+0

您可以在單獨的線程中運行它,發送一些預定義的輸入,並通過模擬與之交互的輸出接口來檢查輸出。 –

+0

簡單的回答:你不會在無盡的不可破解的循環中運行任何東西。確保你有辦法退出它。例如'在跑步時:'。 –

回答

1

您可以限制爲只運行一次測試時,如:

a = 0 
while True and not a: 
    # do your stuff 
    a = 1 

,不會要求你改變壓痕,

或輸出的具體內容,同時運行,以確保它得到正確的值運行時變量:

while True: 
    # get request 
    print(request) 
    # interact with request 
    print(data_achieved) 

這將節省您添加一個變量。