从* _test包访问函数

时间:2014-08-29 12:17:01

标签: module go

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

我的想法是使用pkg_test包 有没有办法从pkg中的pkg_test访问测试函数(在 _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.go <访问函数< / em>在 f_test.go 。有什么办法吗?

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

1 个答案:

答案 0 :(得分:2)

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

  • 从pkg
  • 中的pkg_test移动函数
  • 或者模拟pkg_test正在做的任何函数,以便不依赖于初始化,通过接口(如mocking database

试图解决这个限制是试图解决依赖性问题而不是解决它。

话虽如此,如果你可以在pkg_test中导入pkg,那么是的,你可以从f_test.go中的init_test.go访问一个函数。