在导入的包中测试可重用代码
使用多个包和测试文件时,通常会遇到需要重用来自一项测试又一项测试。考虑以下目录层次结构:
/<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(),这就带来了以下挑战:如何有效地重用导入包中的测试代码?
两种常见的方法是:
更有效的解决方案是保存内部方法的输出将导入的包中的函数添加到支持文件中。当调用实用程序包中的相应函数时,即可加载此文件。
例如,如果pkg1有一个未导出的函数Retrieve(),则可以在实用程序包中创建一个加载支持文件的函数并调用 Retrieve()。通过使用这种方法,实用程序包的函数可以从导入的包访问内部方法,而不会影响模块化或构建工件。
以上是如何有效复用导入包中的测试代码?的详细内容。更多信息请关注PHP中文网其他相关文章!