【发布时间】:2020-01-16 02:08:50
【问题描述】:
我正在使用 echo 和 testify/assert 创建测试用例,我无法获取传递到主包的 viper 字符串令牌,我正在调用主包服务文件。
func TestGetData(t *testing.T) {
// Setup
e := echo.New()
req := httptest.NewRequest(http.MethodGet, "/api/v1/testdata", nil)
req.Header.Set("Content-Type", "application/json")
log.Info(viper.GetString("token"))
req.Header.Add("token", viper.GetString("token"))
rec := httptest.NewRecorder()
c := e.NewContext(req, rec)
res := rec.Result()
defer res.Body.Close()
// Assertions
if assert.NoError(t, controllers.GetData(c)) {
assert.Equal(t, http.StatusOK, rec.Code)
//assert.Equal(t, sections, rec.Body.String())
}
}
当我运行“go run main.go”时,它的打印令牌,但是当我使用“go test”进行测试时,它没有显示。
第二个问题是 - 如何传递基本的 auth 用户名并传递到 main_test.go 文件中
【问题讨论】:
-
请在此行确认您面临的问题:`log.Info(viper.GetString("token"))`
-
我在 req.Header.Add("token", viper.GetString("token")) 遇到问题,我只需要在 golang 测试方法中传递 token 和 base64
标签: go