首页  >  文章  >  后端开发  >  如何在保持内部函数私有的同时重用导入包中的测试代码?

如何在保持内部函数私有的同时重用导入包中的测试代码?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-04 02:39:01605浏览

How to Reuse Test Code in Imported Packages While Keeping Internal Functions Private?

导入包中的可重用测试代码

在提供的场景中,您有一个测试文件(main_test.go),需要访问另一个包(pkg1_test.go)中的仅测试函数。这对跨导入的包重用测试代码提出了挑战。

可能的解决方案及其缺点:

  • 将函数移至 pkg1.go: 这使得 main_test.go 可以使用这些函数,但它们可能会成为二进制文件的一部分,这是不可取的。
  • 使用单独的 testutility 包: 虽然这允许您对测试进行分组 -仅函数,它引入了对 pkg1 中内部方法的依赖,产生了潜在的问题。

推荐解决方案:

而不是使用上述任何一种方法,考虑以下方法:

  1. 创建支持包:将仅测试函数移至名为 support 的新包。该包应该仅依赖于 pkg1 的公共接口。
  2. 使用支持文件: 在支持中,定义一个支持文件,其中包含 pkg1 的私有函数的输出。
  3. 在支持函数中加载支持文件:在支持包中,创建一个加载支持文件并执行必要操作的函数。
  4. **从 main_test.go 调用支持函数: ** 在 main_test.go 中导入支持包,并调用使用 pkg1` 中私有函数的函数。

此解决方案:

  • 将仅测试代码分开来自生产代码。
  • 确保 pkg1 的内部函数保持私有。
  • 避免二进制分发问题。

以上是如何在保持内部函数私有的同时重用导入包中的测试代码?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn