goweb子测试连接mysql的CRUD

go连接mysql数据库

db1.go

package utils1

import (
	"database/sql"

)

var(
	Db *sql.DB
	err error
)

func init(){
	Db,err = sql.Open("mysql","root:123456@tcp(192.168.58.129:3306)/cabbeenMall")
	if err!=nil{
		panic(err.Error())
	}
}

user.go
创建结构体 执行sql语句

package model

import (
	"fmt"
	
	_ "github.com/mysql-master"
	
	"go_codes/day0609_db/utils1"
)

type User struct{
	Id int
	Username string
	Password string
	Email string
}

func (user *User) AddUser() error{
	sqlStr := "insert into cb_user(username,password,email) values(?,?,?)"
	inStmt,err:=utils1.Db.Prepare(sqlStr)
	if err!=nil{
		fmt.Println("预编译出现异常",err)
	}
	_,err2 := inStmt.Exec("lwt","123455","243903449@qq.com")// 执行
	if err2!=nil{
		fmt.Println("执行出现异常",err2)
		return err
	}
	return nil
}

func (user *User) AddUser2() error{
	sqlStr := "insert into cb_user(username,password,email) values(?,?,?)"

	_,err:= utils1.Db.Exec(sqlStr,"lwt2","123456","243903449@qq.com")
	if err!=nil{
		fmt.Println("执行出现异常",err)
		return err
	}
	return nil
}

子测试
目的:子测试方法即真正要测试的方法,但这个方法首字母可以不为大写T,在正规TestXxx()测试方法中执行t.Run即可测试该方法。
TestMain测试将优先于所有测试方法之前,且必须调用m.Run放行测试方法。

package test

import (
	"fmt"
	//_ "github.com/mysql-master"
	"go_codes/day0609_db/model"
	"testing"
)

func testUser_AddUser(t *testing.T) {
	fmt.Println("+")
	user := &model.User{}
	user.AddUser()// 调用添加用户方法
	user.AddUser2()
}

func TestUser(t *testing.T){
	t.Run("子测试程序-添加用户",testUser_AddUser)
	fmt.Println("TestUser()...")
}

// 在测试函数执行前 初始化操作
func TestMain(m *testing.M){
	fmt.Println("TestMain()...")
	m.Run() // 必须调用此方法才会执行 子测试方法
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值