转到这里,使用gorm或/映射到数据库 (PSQL)。
我有以下代码:
package dbstuff
import (
"errors"
"github.com/google/uuid"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/postgres"
)
type OrderPersister struct {
db *gorm.DB
}
func (p *OrderPersister) GetOrder(id uuid.UUID) (*Order, error) {
ret := &Order{}
err := p.db.Table("orders").Where("order_id = ?", id).Scan(ret).Error
return ret, err
}
我正在尝试为它编写一个单元测试,如下所示:
package dbstuff
import (
"testing"
"errors"
"github.com/stretchr/testify/assert"
)
func TestErrInternalServerError(t *testing.T) {
// given
id := uuid.New()
op := OrderPersister{}
// when
order, err := op.GetOrder(id)
// then
assert.NotNil(t, order)
assert.NotNil(t, err)
}
当我运行它时,我得到无效的内存地址或 nil 指针取消引用错误,因为我没有*gorm.DB在我的OrderPersister实例上实例化设置 a。有没有一种简单的方法来模拟/存根,以便我的测试确认我们尝试查询orders表并返回或/映射结果?
呼如林
慕桂英4014372
随时随地看视频慕课网APP
相关分类