登录
首页 >  Golang >  Go问答

使用myType进行类型化参数测试json.Marshal()函数

来源:stackoverflow

时间:2024-02-12 22:09:23 211浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《使用myType进行类型化参数测试json.Marshal()函数》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我有这个方法

func getrequestbody(object mytype ) ([]byte, error) {
    if object == nil {
        return nil, nil
    }

    requestbody, err := json.marshal(object)
    if err != nil {
        return nil, errors.new("unable to marshal the request body to json")
    }
    return requestbody, nil
}

我正在尝试像这样测试该函数:

t.Run("errorMarshaling", func(t *testing.T) {

        body, err := getRequestBody([some object of MyType to do the marshal fail])

        assert.Nil(t, body)
        assert.Equal(t, err.Error(), "unable to marshal the request body to json")
    })

有什么方法可以在不改变函数属性类型的情况下做到这一点吗?


正确答案


json.marshall 只会在 documentation 中列出的特定情况下抛出错误:

如果底层对象没有能力满足这些标准之一,我认为您无法让它在测试中失败。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>