3
我有(至少)我的主程序所在的一個軟件包。我有另一個運行測試的軟件包。 I:使用測試包的defpackage形式的主程序包但只導入導出的符號。所以我不能測試所有的功能,只有我明確導出的功能(公共API)。我如何解決這個問題?如何在不導出所有符號的情況下運行測試
我有(至少)我的主程序所在的一個軟件包。我有另一個運行測試的軟件包。 I:使用測試包的defpackage形式的主程序包但只導入導出的符號。所以我不能測試所有的功能,只有我明確導出的功能(公共API)。我如何解決這個問題?如何在不導出所有符號的情況下運行測試
你總是可以參考的內部(未匯出)符號用雙冒號預選賽:
(package-name::function-name)
您也可以導入一個符號到您的測試包(無論它已經從主出口包)與import
。例如:
(import 'package-name::function-name)
(fboundp 'function-name) ;; => t
Here's上import
的CLHS條目。
此外,如果您還沒有閱讀,我建議Practical Common Lisp的Programming in the Large: Packages and Symbols一章。它不直接解決你的問題,但我提到它,因爲我發現它通常對重新包裝和符號很有幫助。