2011-10-06 96 views
7

我正在研究nodejs應用程序。我設法打破了單獨模塊中的一些代碼,我正在使用nodeunit進行測試,但是我的代碼庫的很大一部分依然依賴於socket.io。測試socket.io事件

如何測試我的socket.io事件?

+0

鏈接的文章是否足夠,或者您選擇了不同的方法? – Andy

+0

感謝您的詢問。文章看起來不錯,但我不完全確定這是一條路。據我所知,你提供的鏈接測試了服務器發送的內容,但是我的代碼中的邏輯實際上在後端做了很多事情,而客戶端卻無法立即看到它。正如我所提到的,我將其中的一部分轉化爲獨立的模塊,但仍有一些未經測試的部分,恐怕會在無法預料的未來某一時刻期望它們失敗時悄然失敗。所以雖然我仍然可以爲你提供解決方案,但我覺得需要做很多工作。 – vise

+0

聽起來好像是茉莉花間諜的最佳人選 - 回答更新。 – Andy

回答

8

試試這篇文章:Socket.IO and Asynchronous Testing with node.js

所以,假設。我的意思是,讓我們創建競爭者 服務器的假實例,以及可視化客戶端。然後,我們將構建一個測試 套件,它使用這些假貨來測試我們開發的實際服務器 。例如,我將在此粘貼一些稍微簡化的代碼片段 。如果你真的對這些東西感興趣,你會發現它 全部在Github

編輯:如果你需要測試功能,爲它沒有即時輸出,茉莉花BDD提供spies。這些可以被用來「看裏面」的功能和測試某些參數是否通過等,並且是嘲諷測試異步調用,以及寫更多的功能測試有用:

茉莉花間諜是測試雙打這可以作爲存根,間諜,假貨或 在預期中使用時,嘲笑...間諜可以檢查它們是否被調用 以及調用參數是什麼。間諜有 以下字段:wasCalled,callCount,mostRecentCall和 argsForCall(請參閱文檔)。間諜在每個規格結束時被拆除。

Docsan articlerelated SO question

+0

謝謝,我會研究它。 – vise