小编Syn*_*ync的帖子

在 golang 中模拟外部依赖

我有一个连接到 AWS S3 并获取文件的程序。我想为它编写一些测试,但更一般地说,我想知道如何在 Golang 中进行这些模拟。我知道有一些库可以创建模拟,但如果我没记错的话,我读到有人建议只使用标准库进行单元测试是最好的方法。

那么,您将如何测试这样的函数?

func (s S3Input) Sample(key string) ([]byte, error) {
    var buf []byte
    waBuf := aws.NewWriteAtBuffer(buf)

    _, err := s.Downloader.Download(
        waBuf,
        &s3.GetObjectInput{
            Bucket: aws.String(s.Bucket),
            Key:    aws.String(key),
        },
    )
    if err != nil {
        return nil, err
    }

    return buf, nil
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

unit-testing go

6
推荐指数
1
解决办法
3554
查看次数

标签 统计

go ×1

unit-testing ×1