golang
已收录文章:13670篇
-
使用真实数据库或Mock进行Go语言数据库测试,关键在于连接管理、事务隔离与数据清理。建议用Docker启动PostgreSQL或SQLite做集成测试,通过TestMain初始化db,在事务中运行每个测试并回滚,避免数据污染;结合seed函数准备测试数据,使用testify/assert断言结果。对于单元测试,可借助go-sqlmock库模拟SQL执行过程,验证语句与参数。接口抽象有助于解耦逻辑与数据层,提升可测性。最终根据场景选择集成测试保真或mock测试提效,确保稳定性和速度兼顾。496 收藏
-
首先定义Person结构体并创建测试用JSON文件,接着实现ReadJSON和WriteJSON函数用于文件读写,然后编写单元测试验证数据读取与写入的正确性,最后通过使用testdata目录和临时文件确保测试环境隔离,保障JSON操作的可靠性。496 收藏
-
压缩zip func Zip(dest string, paths ...string) error { zfile, err := os.Create(dest) if err != nil { return err } defer zfile.Close() zipWriter := zip.NewWriter(zfile) defer zipWriter.Close() for _, src := range paths495 收藏
-
分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁495 收藏
-
因为TCP的三只握手等等原因,建立一个连接是一件成本比较高的行为。所以在一个需要多次与特定实体交互的程序中,就需要维持一个连接池,里面有可以复用的连接可供重复使用。 而维持一495 收藏
-
问题内容sql语句中表名列名由于和MySQL关键字冲突,我需要加反引号,请问在golang中如何转义反引号?正确答案 不能在反引号(`)中转义反引号, 但是你可以这样使用: query := `SELECT * FROM ` + "`your_tab495 收藏