douzhun5971 2018-10-29 13:16
浏览 312
已采纳

Go Mock Postgresql错误

As discussed in this answer, I have written code for checking a unique key violation:

if err, ok := err.(*pq.Error); ok {
    if err.Code.Name() == "unique_violation" {
        fail(w, http.StatusBadRequest, 0, "Item already exists")
                    return
        }
}

For writing unit-testcases, I need to mock this error. I have written the mock for the error like this:

return pq.Error{Code: "unique_violation"}

But this does not matches with the code. How do I mock the pq.Error?

  • 写回答

1条回答 默认 最新

  • dongshou6041 2018-10-29 13:48
    关注

    As noted in the Godoc, ErrorCode is a five-character error code. err.Code.Name() gets the human-friendly version of the error, but the error itself should be represented, and thus constructed, by the error code, which in this case is 23505.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?