我试图减少我的 API 的表面积,所以我使我的app结构不导出(使用小写名称),并且只公开了New函数:
package mylib
type app struct {
}
func New() *app {
return &app{}
}
但是现在,我想为这个东西写一个表驱动的测试,我不能mylib.app在一个结构中保存一个:
package mylib_test
import (
"testing"
"mylib"
)
func TestApp(t *testing.T) {
tests := []struct {
name string
app private_type_public_new.app // This part doesn't work
}{
// ...
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
})
}
}
我有什么选择?我应该将应用程序结构公开(App)并保留所有未导出的字段吗?我可以用高阶函数做一些有趣的事情来存储New函数实例以在子测试中实例化应用程序吗?还有什么?
慕勒3428872
相关分类