繁体   English   中英

go 测试错误“请求验证失败”

go tests error "Request validation failed"

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

在 golang 中运行测试时request validation failed ,但在运行代码时却没有:

{"error":"Request validation failed","validation":[{"keyword":"type","dataPath":".body","schemaPath":"#/properties/body/type","params":{"type":"object"},"message":"should be object"}]}

如果我正常运行代码,一切正常(没有错误)。 但是,如果我运行调用相同函数的测试会给出该错误。 我正在处理的 json 文件完全相同。

这怎么可能? 我应该仔细检查代码的任何部分以使测试正常工作吗?

这是测试功能:

func TestSync(t *testing.T) {
    var url_base string = "http://localhost:8080"
    var token string = "xxx"
    fileJson := EnvVars("test3_0.json")
    Sync(url_base, token, fileJson)
    responseServer := StatusFeaturesServer(url_base+"/api/admin/projects/default", token)
    expected, _ := json.Marshal(fileJson)
    server, _ := json.Marshal(responseServer)
    if cmp.Equal(responseServer, fileJson) {
        t.Errorf("Expected '%s', but got '%s'", string(expected), string(server))
    }
}

这是代码:

func Sync(url_base string, token string, fileJson *Environments) {
    for _, e := range fileJson.Environments {
        for _, f := range e.Features {
            FFSync(url_base, token, f.Name, e.Environment, strconv.FormatBool(f.Enabled))
        }
    }
}


func FFSync(url_base string, token string, feature string, environment string, enabled string) {

    url := fmt.Sprintf(url_base+"/api/admin/projects/default/features/%s/environments/%s/%s", feature, environment, enabled)

    ApiCall(token, nil, url)

}

func ApiCall(token string, data interface{}, url string) {

    payloadBytes, err := json.Marshal(data)
    if err != nil {
        log.Fatal(err)
    }
    body := bytes.NewReader(payloadBytes)

    client := &http.Client{}
    req, err := http.NewRequest("POST", url, body)

    if err != nil {
        log.Fatal(err)
    }
    req.Header.Set("Authorization", token)
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        log.Fatal(err)
    }
    defer resp.Body.Close()
    bodyText, err := io.ReadAll(resp.Body)

    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("%s\n", string(bodyText))

}
问题暂未有回复.您可以查看右边的相关问题.
1 在 NodeJs 中庆祝请求验证失败错误?

每当我尝试在我的网站上发布内容时,都会遇到这个奇怪的错误。 这是一个用户可以输入文本或输入媒体文件(例如照片或视频)的字段。 但是当我尝试输入文本时,会返回此错误。所以我无法发布任何文本或图像。 我的前端是用 React 构建的。 这里的路线: ...

4 庆祝请求验证失败

我正在尝试使用庆祝 package 来验证我的输入请求,但不知何故,它无法从我的 React 应用程序调用。 如果我通过 Postman 运行请求,它们运行良好。 这是 POSTMAN 调用的屏幕截图。 Postman 来电现在,当我从我的 react 应用程序中从该服务调用它时,这就是服务调用请 ...

5 庆祝 npm package。 错误:庆祝请求验证失败

我正在为我的应用程序构建身份验证,并且正在验证部分。 我从 express-validator 切换到了庆祝,我有一个错误,我不确定如何处理。 这就是我设置庆祝的方式。 这是我得到的错误。 如有必要,我可以提供更多屏幕抓取。 谢谢编辑:这是为了显示庆祝已安装以及我如何导入它。 编辑#2: ...

7 如何在运行测试中仅重新运行失败的测试

我有一个包含多个文件和测试的软件包。 当前要重新运行失败的测试,我正在使用: 确实可以,但是它会在单个测试失败的情况下重新运行所有程序包测试。 因此有时它会导致下一个序列:通过,通过,失败。 这样,测试标记为“失败”。 我的目标是仅重新运行程序包中失败的测试,在首次成功时将其标记为“通过”,仅在 ...

9 Laravel 验证在请假请求中失败

我在请假请求中有此 Laravel-5.8 代码用于验证: 请求规则: Controller 创建.blade <section class="content"> @if(Session::has('info')) <p>{{ Session::get('info') } ...

2020-04-13 22:09:57 1 55   laravel
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM