gpt4 book ai didi

module - 从 *_test 包访问函数

转载 作者:IT王子 更新时间:2023-10-29 02:05:54 26 4
gpt4 key购买 nike

我有一个包 pkg。包 pkg 的测试在 _test.go 文件中。然而,为了初始化测试运行器,我需要一个来自其他包的函数,由于循环依赖,我无法在 pkg 中导入它。

我的想法是使用pkg_test包。
有什么方法可以从 pkg_test 中的 pkg 访问测试函数(在 _test.go 文件中)?

我的项目结构:


├── f.go # package pkg
├── f_test.go # package pkg
├── init_test.go # package pkg_test

换句话说:我想在 init_test.go 中从 f_test.go 访问一个函数,反之亦然(从 init_test.gof_test.go 中。有什么办法吗?

PS:在 f_test.go 中我无法导入 pkg_test

最佳答案

这通常是一个很好的机会:

  • 将函数从 pkg_test 移到 pkg 中
  • 或者通过接口(interface)(如 mocking database )模拟 pkg_test 中的任何函数正在执行的操作,以便不依赖于该初始化

试图绕过该限制是试图绕过依赖性问题,而不是解决它。

也就是说,如果您可以在 pkg_test 中导入 pkg,那么是的,您可以在 init_test.go 中访问 f_test.go 中的函数。

关于module - 从 *_test 包访问函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25568129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com