首页  >  文章  >  后端开发  >  如何有效复用导入包中的测试代码?

如何有效复用导入包中的测试代码?

Barbara Streisand
Barbara Streisand原创
2024-11-04 09:09:02127浏览

How to Reuse Test Code in Imported Packages Effectively?

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

使用多个包和测试文件时,通常会遇到需要重用来自一项测试又一项测试。考虑以下目录层次结构:

/<br>|-- main.go // 包 main,一个 HTTP 服务器,它接受请求并调用 pkg1 中的 C/U API 来完成某些任务<br>|-- main_test.go // 想要调用 pkg1_test 中的veryfyTaskNumber<br>|-- pkg1 // 为了安全起见,打包 pkg1、带有 Retrieve&Delete 的 CRUD API,未导出<pre class="brush:php;toolbar:false">|-- pkg1_test.go // contains a function verifyTaskNumber(*testing.T, taskName string, expectedNo int) which calls internal Retrieve function in pkg1

在这种情况下,main_test.go 需要从 pkg1_test.go 访问 verifyTaskNumber(),这就带来了以下挑战:如何有效地重用导入包中的测试代码?

两种常见的方法是:

  1. 将函数移动到导入的包:此方法使函数可用于项目中的所有测试文件。但是,这些函数可能包含在已编译的二进制文件中,在这种情况下这是不希望的。
  2. 创建实用程序测试包:此方法涉及将函数移动到单独的测试实用程序包并将其导入相关测试文件中。此解决方案的缺点是实用程序包中的函数可能依赖于导入包中的内部方法,而这些方法可能无法访问。

更有效的解决方案是保存内部方法的输出将导入的包中的函数添加到支持文件中。当调用实用程序包中的相应函数时,即可加载此文件。

例如,如果pkg1有一个未导出的函数Retrieve(),则可以在实用程序包中创建一个加载支持文件的函数并调用 Retrieve()。通过使用这种方法,实用程序包的函数可以从导入的包访问内部方法,而不会影响模块化或构建工件。

以上是如何有效复用导入包中的测试代码?的详细内容。更多信息请关注PHP中文网其他相关文章!

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