1
我正在開發的一些小應用程序使用我編寫的模塊通過REST API檢查某些Web服務。我一直在試圖向它添加單元測試,所以我不會破壞東西,而且我偶然發現了一個問題。PyQt和unittest - 如何處理信號和插槽
我使用了很多信號插槽連接來異步執行操作。例如,典型的測試將是(僞的Python)中,用postDataDownloaded作爲信號:
def testConnection(self):
"Test connection and posts retrieved"
def length_test():
self.assertEqual(len(self.client.post_data), 5)
self.client.postDataReady.connect(length_test)
self.client.get_post_list(limit=5)
現在,單元測試將報告該試驗是「OK」運行時,無論結果(作爲另一時隙是被調用),即使斷言失敗(我會得到一個未處理的AssertionError)。例如當deliberatiely使測試失敗:
Test connection and posts retrieved ... ok
[... more tests...]
OK
Traceback (most recent call last):
[...]
AssertionError: 4 != 5
測試內的槽僅是一個實驗:我得到相同的結果,如果它是外部(實例方法)。
我還必須補充一點,我打電話的各種方法都會發出HTTP請求,這意味着他們需要一點時間(我需要嘲笑請求 - 同時我使用SimpleHTTPServer來僞造連接並給他們適當的數據)。
有沒有辦法解決這個問題?
感謝您的建議,我給它一個鏡頭今晚稍後。 – Einar 2010-03-19 08:02:03