【问题标题】:How do I run tests without exporting all the symbols如何在不导出所有符号的情况下运行测试
【发布时间】:2013-08-24 04:24:18
【问题描述】:

我(至少)有一个包存放在我的主程序中。我有另一个用于运行测试的包。我:使用测试包的defpackage形式的主程序包,但只导入导出的符号。所以我不能测试所有的函数,只能测试我明确导出的那些(公共 API)。我该如何解决这个问题?

【问题讨论】:

    标签: package common-lisp symbols


    【解决方案1】:

    您始终可以使用双冒号限定符引用内部(未导出)符号:

    (package-name::function-name)
    

    您还可以使用import 将符号导入您的测试包(无论它是否从主包中导出)。例如:

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

    Here'simport 上的 CLHS 条目。

    另外,如果你还没有读过,我推荐 Practical Common Lisp 中的Programming in the Large: Packages and Symbols 章节。它没有直接解决您的问题,但我提到它是因为我发现它对重新分级包和符号很有帮助。

    【讨论】:

      猜你喜欢
      • 2012-02-06
      • 1970-01-01
      • 2011-06-13
      • 2019-09-23
      • 1970-01-01
      • 2022-10-01
      • 2023-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多