12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package sqlx
- import (
- "database/sql"
- "io"
- "testing"
- "github.com/DATA-DOG/go-sqlmock"
- "github.com/stretchr/testify/assert"
- "github.com/tal-tech/go-zero/core/logx"
- )
- const mockedDatasource = "sqlmock"
- func init() {
- logx.Disable()
- }
- func TestSqlConn(t *testing.T) {
- mock := buildConn()
- mock.ExpectExec("any")
- mock.ExpectQuery("any").WillReturnRows(sqlmock.NewRows([]string{"foo"}))
- conn := NewMysql(mockedDatasource)
- badConn := NewMysql("badsql")
- _, err := conn.Exec("any", "value")
- assert.NotNil(t, err)
- _, err = badConn.Exec("any", "value")
- assert.NotNil(t, err)
- _, err = conn.Prepare("any")
- assert.NotNil(t, err)
- _, err = badConn.Prepare("any")
- assert.NotNil(t, err)
- var val string
- assert.NotNil(t, conn.QueryRow(&val, "any"))
- assert.NotNil(t, badConn.QueryRow(&val, "any"))
- assert.NotNil(t, conn.QueryRowPartial(&val, "any"))
- assert.NotNil(t, badConn.QueryRowPartial(&val, "any"))
- assert.NotNil(t, conn.QueryRows(&val, "any"))
- assert.NotNil(t, badConn.QueryRows(&val, "any"))
- assert.NotNil(t, conn.QueryRowsPartial(&val, "any"))
- assert.NotNil(t, badConn.QueryRowsPartial(&val, "any"))
- assert.NotNil(t, conn.Transact(func(session Session) error {
- return nil
- }))
- assert.NotNil(t, badConn.Transact(func(session Session) error {
- return nil
- }))
- }
- func buildConn() (mock sqlmock.Sqlmock) {
- connManager.GetResource(mockedDatasource, func() (io.Closer, error) {
- var db *sql.DB
- var err error
- db, mock, err = sqlmock.New()
- return &pingedDB{
- DB: db,
- }, err
- })
- return
- }
|