数据库测试失败:正则表达式不匹配

时间:2019-06-14 14:53:11

标签: database go testing mocking

我有以下代码正在插入到表中

func (s *MyRepo) InsertValue(ctx context.Context, orderID string) error {
    _, err := s.db.DatabaseBuilder().
        WithContext(ctx).
        DeleteFrom("orders").
        Where("orderID=?", orderID).
        Exec()
    return err
}

为了测试此代码,我编写了以下测试

func TestMyRepo_InsertValue_Error(t *testing.T) {
    orderID := "ORDERID"
    dbError := "DB_ERROR"
    mockDB, repo := getDBStore()

    mockDB.ExpectExec("INSERT INTO `orders` (`orderID`) VALUES (?)").
        WithArgs(orderID).
        WillReturnError(errors.New(dbError))

    err := repo.InsertValue(context.Background(), orderID)
    assert.Equal(t, dbError, err.Error())
}

为此,我收到错误提示

+ExecQuery 'INSERT INTO `orders` (`orderID`) VALUES (?)', does not match regex 'INSERT INTO `orders` (`orderID`) VALUES (?)'

错误中的两个SQL语句相同(至少多数民众赞成在我看来)。我想念什么吗?我如何在这里测试我的插入功能

0 个答案:

没有答案