即使是为了推动基本的项目结构,我也应该有 80% 的测试覆盖率。我有点困惑如何为以下代码编写单元测试以连接到 postgres db 并 ping postgres 进行健康检查。有人能帮助我吗。


var postgres *sql.DB


// ConnectToPostgres func to connect to postgres

func ConnectToPostgres(connStr string) (*sql.DB, error) {


    db, err := sql.Open("postgres", connStr)

    if err != nil {

        log.Println("postgres-client ", err)

        return nil, err


    }

    postgres = db

    return db, nil


}

// PostgresHealthCheck to ping database and check for errors

func PostgresHealthCheck() error {

    if err := postgres.Ping(); err != nil {

        return err

    }

    return nil

}

type PostgresRepo struct {

    db *sql.DB

}

// NewPostgresRepo 构造函数


func NewPostgresRepo(database *sql.DB) *PostgresRepo {

    return &PostgresRepo{

        db: database,

    }

}