3

メインプログラムが存在するパッケージが (少なくとも) 1 つあります。テストを実行するための別のパッケージがあります。私は:テストパッケージのdefpackage形式でメインプログラムのパッケージを使用しますが、エクスポートされたシンボルのみをインポートします。したがって、すべての関数をテストすることはできず、明示的にエクスポートした関数 (パブリック API) のみをテストできます。この問題を解決するにはどうすればよいですか?

4

1 に答える 1

7

内部 (エクスポートされていない) シンボルは、ダブルコロン修飾子でいつでも参照できます。

(package-name::function-name)

を使用して、シンボルをテスト パッケージにインポートすることもできます (メイン パッケージからエクスポートされたかどうかに関係なく) import。例えば:

(import 'package-name::function-name)
(fboundp 'function-name)  ;; => t

CLHS エントリは次のとおりimportです。

また、まだ読んでいない場合は、Practical Common LispのProgramming in the Large: Packages and Symbolsの章をお勧めします。あなたの質問に直接対処するものではありませんが、一般的にパッケージとシンボルの再評価に非常に役立つことがわかったので言及します。

于 2013-08-21T17:20:13.103 に答える