本文寫作背景是,我需要開發一個單元測試,能夠測試到protected convertListItem方法。

我直接敲service., Visual Studio Code的代碼自動完成清單裡,沒有出現convertListItem,因為它是protected方法。但我們要知道,因為Angular TypeScript編譯後生成的是JavaScript代碼,而JavaScript裡是不存在protected方法概念的,是以我們可以使用第244行這種動态調用的方式,實作在運作時仍然能夠執行convertListItem方法的目的。
其實有個更佳的做法,因為getData調用load, load調用convertListItem:
是以我隻需要在單元測試裡對getData進行測試,一樣能達到測試convertListItem的效果。