文件名称:copyist:在Go测试中模拟您SQL数据库从未如此简单
文件大小:68KB
文件格式:ZIP
更新时间:2024-04-06 20:10:36
Go
抄写员 在Go测试中模拟您SQL数据库从未如此简单。复制器库自动记录您在测试期间进行的低级SQL调用。然后,它会生成记录文件,这些文件可用于在不连接到实际SQL数据库的情况下播放这些调用。再次运行测试。这次,它们将运行得更快,因为现在它们不需要数据库连接。 最重要的是,您的测试将像在每个测试用例之间将测试数据库重置为干净的众所周知的状态一样运行。令人沮丧的问题已经过去,其中一个测试可以单独运行很好,但是与修改数据库的其他测试一起运行时却失败了。实际上,在回放期间,您可以并行运行不同的测试包,因为它们不会在数据库级别相互冲突。 复制者不会对生产代码造成任何开销,并且只要您的代码直接或间接使用Go的sql包(例如Go ORM的和广泛使用的sqlx包),几乎不需要对您的应用程序或测试代码进行任何更改。这是因为copyist在Go的sql程序包的驱动程序级别上运行。 抄写员可以解决什么问题? 假设
【文件预览】:
copyist-master
----go.mod(128B)
----rows.go(2KB)
----copyist_test.go(3KB)
----session.go(6KB)
----Makefile(1KB)
----recording_file.go(12KB)
----tx.go(1KB)
----values.go(9KB)
----LICENSE(11KB)
----recordtype.go(1KB)
----driver.go(6KB)
----drivertest()
--------multiple()
--------go.mod(897B)
--------pgxtest()
--------pqtest()
--------commontest()
--------go.sum(17KB)
--------pqtestold()
--------dockerdb()
----go.sum(2KB)
----conn.go(7KB)
----README.md(9KB)
----indirect_test.go(946B)
----values_test.go(2KB)
----recordtype_string.go(1KB)
----result.go(2KB)
----copyist.go(8KB)
----stmt.go(4KB)