问题标签 [go-sqlmock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 在 sqlmock 中测试 MSSQL 表值参数
我有一个函数,旨在使用表值参数和过程将大量元素插入 MSSQL 数据库。
我为这个函数写的测试包括在下面(注意它取决于银杏和gomega):
现在,这段代码是为 MySQL 上下文编写的,自从我将代码移植到 MSSQL 后,我遇到了一个特殊的错误:
似乎 sqlmock 正在尝试调用ConvertValue
无效的 TVP 对象。那么,如何让 sqlmock 正确处理这个值,以便我可以围绕查询进行单元测试?
go - 预计不会调用查询 [...]
我想测试一个数据库查询。为此,我尝试使用 sqlmock 库。可悲的是我没有找到解决方案
我的测试是
我的代码看起来像这样
如果我运行测试,我会收到以下错误
如果调用了查询,我该如何检查?
go - 测试 row.scan 时如何模拟 sqlmock 错误
我正在尝试模拟以下功能。我正在努力让它测试 rows.next() 返回。
这是我的测试用例:
我得到的错误是:
使用 args [] 调用 Query 'SELECT (.+) FROM user' 不是预期的,下一个预期是:ExpectedPrepare => 期待 Prepare 语句,其中:
- 匹配 sql: 'SELECT (.+) FROM user'
知道错误可能在哪里吗?
unit-testing - 当我的程序中有并发查询时如何使用 go-sqlmock?
sqlmock需要按顺序匹配 SQL。但是,如果我的代码中有并发查询,就像这样:
据说我们无法知道SQL的执行顺序。所以我不知道如何使用sqlmock来正确匹配sql。
unit-testing - Sqlmock + Gorm 失败并出现错误“不支持的数据类型:&[]”
我尝试用 sqlmock 测试 gorm 的东西。
我的模型看起来像:
我收到以下错误:
考试:
功能:
Build 只是一个返回的助手*gorm.DB
运行该示例按预期工作,但尝试对其进行单元测试失败。
go - 在不同的 DAO 中使用相同的 DB 事务
我在我的一个 Golang 应用程序中有一个用例来更新 API 中的多个表,如果其中一个更新失败,我希望所有以前的更新都回滚(Java 中的 @Transactional 所做的事情)。我尝试通过以下方式进行操作:
但这不起作用,因为我们在 Update1 和 Update2 方法中创建了一个新事务。所以我尝试在方法 Update1 和 Update2 的方法参数中传递事务,如下所示:
但问题是在某些用例中,我只想调用方法 Update1。在这种情况下,要在 Update1 方法中传递的事务的值应该是多少?
或者有没有更好的方法来做到这一点。有人可以帮忙吗?
go - SQLMock 和 Gorm:模拟 Postgres 插入
当我尝试使用 SQLMock 和 Gorm.io 模拟 Postgres 插入时,我收到一个错误,表明查询不是预期的。我试图用它regexp.QuoteMeta()
来包装和转义我的字符串,但它不起作用。我添加并删除了args和结果,但错误仍然出现
如何通过 SQLMock 设置预期的查询?
我给你原始的 PostgresQuery 和 UserModel
go - 一个 Go 测试用例中的 DB Mocking 正在干扰其他测试用例
我有两个 Go 测试用例,如下所示,它们测试一个名为MyEndpoint
.
MyEndpoint
当它选择的数据库行具有 Field1 == "A" 时应该成功,否则返回错误。
我正在使用来自 Data-dog 的 go-sqlmock 包来模拟数据库。
当我单独运行这两个测试用例时,它们都通过了。
但是当我将它们一起运行时,TestMyTestB
会失败,因为它认为 Field1 == "Z"。这么明显TestMyTestA
是在干扰TestMyTestB
。为什么?
看来,TestMyTestA
以防万一进行的模拟在到达时仍然有效,TestMyTestB
而我在TestMyTestB
以防万一的模拟被完全忽略了。
如何相互独立地模拟这两个测试用例?
go - 去 sqlmock 测试插入的列的 susbet
我正在持久层中测试以下查询
我写了下面的代码
这不能正确测试代码,理想情况下我想做这样的事情
我如何定义这个row_with_one_column_desc
?即返回匹配的余额customer_id