使用脚手架应用做单元测试
因為后臺service比較復雜,需要三個不同的實例協同工作,所以之前Oliver開發了Scaffolding App這個Angular前端,目的是方便我們隨時測試三實例協同是否仍然正常。
我想的是把這個Angular前端當成一個單元測試工具來用,每次我們改了后臺之后,都把這個Angular UI打開跑一跑。
我看到你之前有個提交把client.write(data) 注釋了,換成client.emit(data[0], data[1]);
我想你這個改動肯定是for昨天串QR code的scenario的,但是這樣一改,之前的unit test就fail了。
你用emit(data[0], data[1])這種寫法不太好:
這個函數通過回調方式被調用,你在函數體內作為被調用者,無法知道data的數據類型,而你直接硬編碼成data[0], data[1]. 這就告訴了代碼的閱讀者:
data是一個至少包含了兩個元素的數組
data是一個至少包含了兩個字符的字符串
當運行時data的數據類型不滿足以上兩個條件時,代碼就會報異常,退出。
這里無論是client.write,還是client.emit, 我們都可以把它看成是廣義的發布者模式,會有socket的另一端負責接收。
這種模式的最佳實踐是,發布者不關心發布數據的格式,只是簡單粗暴的把數據推送出去,具體不同的處理由接收方負責,比如接收方的偽代碼可能是這樣的:
而你現在發送端的data[0], data[1], 從design上說相當于把這種處理從接收端移到發送端了。
為了不影響我們QR code scan的功能,我只是在你提交基礎上簡單加了一行注釋,注明client.write(data)的必要性。
麻煩你有時間的時候,琢磨下如何改動現在的代碼,使得單元測試和QR code scan的流程能同時工作,謝謝。這也能提高你編程的水平。
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
總結
以上是生活随笔為你收集整理的使用脚手架应用做单元测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP UI5 library-dbg.
- 下一篇: SAP UI5 datajs.js re