golang应该是一个集成测试吗?

时间:2017-08-13 09:31:19

标签: unit-testing testing go integration-testing

我有一个实现数据库接口的方法,该方法插入一个'对象'进入数据库。

type database interface {
    createLog(logDoc) (bool, error)
}


type mongo struct {
    database   string
    collection string
}

func (m mongo) createLog(l logDoc) (bool, error) {

    s, err := mgo.Dial("mongo")

    defer s.Close()

    if err != nil {
        return false, err
    }

     err = s.DB(m.database).C(m.collection).Insert(l)
     if err != nil {
        return false, err
     }

     return true, nil
}

我希望能够测试createLog方法,我该怎么做?它应该是一个集成测试吗?如果是这样你的方法是什么?

提前谢谢

1 个答案:

答案 0 :(得分:0)

我只是在观看了视频&稍微思考一下如果没有人回答我会回答我自己的问题。

这段视频让我没有编写任何集成测试,而是编写单元测试。并创建存根,允许我修改接口的行为方式,允许我在数据库行为正确和错误时进行测试。

如果你能想出一个更好的方式来描述我所说的话,请做:)