如何在Go中测试数据库错误?

安德鲁·巴克内尔(Andrew Bucknell):

我正在执行一个由leveldb(https://github.com/syndtr/goleveldb支持的存储器我是新手,正尝试找出如何在下面的代码中获得条件的测试覆盖率,其中perr!= nil。我可以测试自己的错误,但是我无法弄清楚如何可靠地获取leveldb的Put方法以返回错误。模拟数据库只是为了在少数情况下提高测试覆盖率,这似乎是很多工作,却没有太多回报。在这里嘲笑leveldb是我唯一的真实选择吗?如果是这样,建议使用什么模拟框架?如果还有另一种方式,那是什么?

    if err == leveldb.ErrNotFound {
            store.Lock()
            perr := store.ldb.Put(itob(p.ID), p.ToBytes(), nil)
            if perr != nil {
                    store.Unlock()
                    return &StorerError{
                            Message: fmt.Sprintf("leveldb put error could not create puppy %d : %s", p.ID, perr),
                            Code:    501,
                    }
            }
            store.Unlock()
            return nil
    }
VonC:

模拟是这种测试的通常选择的方法,这就是为什么golang/mock例如有mockgen命令生成测试代码的原因。

mockgen 有两种操作模式:源和反射。

  • 模式从源文件生成模拟接口。
    通过使用-source标志启用它
    在此模式下可能有用的其他标志是-imports-aux_files

例:

mockgen -source=foo.go [other options]
  • 反射模式通过构建使用反射来了解接口的程序来生成模拟接口。
    通过传递两个非标志参数来启用它:导入路径和逗号分隔的符号列表。

例:

mockgen database/sql/driver Conn,Driver

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在功能测试中连接测试数据库?

来自分类Mysql

如何在docker下创建测试数据库?

来自分类Dev

如何测试数据库中是否存在行

来自分类Dev

如何在测试数据库中填写表格?

来自分类Dev

如何在Rails 5中为测试数据库运行db:migrate?

来自分类Dev

如何在 dockerized Rails 应用程序中创建 Mysql 测试数据库?

来自分类Dev

如何在 oledb 连接的 c# 脚本任务中测试数据库可用性

来自分类Dev

与ASP.NET Core和Entity Framework Core的集成测试-如何在每个测试中还原数据库中的测试数据?

来自分类Dev

Laradock单元测试数据库错误PDOException

来自分类Dev

我应该如何测试数据库驱动的Django CMS的404错误?

来自分类Dev

如何在启动时创建新的测试数据库

来自分类Dev

Django:如何访问测试数据库?

来自分类Dev

如何防止RethinkDB创建测试数据库

来自分类Dev

azk-如何设置测试数据库?

来自分类Python

如何自动销毁Django测试数据库

来自分类Dev

如何从 DatabaseConfigProvider 应用进化来测试数据库

来自分类Dev

Rails:如何确保测试数据库的干净状态?

来自分类Dev

如何使用QuickCheck测试数据库相关功能?

来自分类Dev

受限环境中的Django测试数据库

来自分类Dev

在 django 中测试数据库而不是 django 模型

来自分类Dev

在Vapor 3中删除测试数据库

来自分类Dev

如何使用内存数据库提供程序中的Entity Framework Core测试数据库视图?

来自分类Python

如何仅在内存中运行Django的测试数据库?

来自分类Dev

PostgreSQL在线测试数据库

来自分类Dev

RSpec测试数据库索引

来自分类Dev

如何在理论上使用querybuilder来测试数据库中是否已设置两个给定值中的至少一个

来自分类Dev

dbunit如何将真实数据库与测试数据库同步

来自分类Dev

在AWS RDS中克隆数据库之一以获取测试数据库

来自分类Dev

如何在不指定其他参数的情况下仅播种我的测试数据库?

Related 相关文章

  1. 1

    如何在功能测试中连接测试数据库?

  2. 2

    如何在docker下创建测试数据库?

  3. 3

    如何测试数据库中是否存在行

  4. 4

    如何在测试数据库中填写表格?

  5. 5

    如何在Rails 5中为测试数据库运行db:migrate?

  6. 6

    如何在 dockerized Rails 应用程序中创建 Mysql 测试数据库?

  7. 7

    如何在 oledb 连接的 c# 脚本任务中测试数据库可用性

  8. 8

    与ASP.NET Core和Entity Framework Core的集成测试-如何在每个测试中还原数据库中的测试数据?

  9. 9

    Laradock单元测试数据库错误PDOException

  10. 10

    我应该如何测试数据库驱动的Django CMS的404错误?

  11. 11

    如何在启动时创建新的测试数据库

  12. 12

    Django:如何访问测试数据库?

  13. 13

    如何防止RethinkDB创建测试数据库

  14. 14

    azk-如何设置测试数据库?

  15. 15

    如何自动销毁Django测试数据库

  16. 16

    如何从 DatabaseConfigProvider 应用进化来测试数据库

  17. 17

    Rails:如何确保测试数据库的干净状态?

  18. 18

    如何使用QuickCheck测试数据库相关功能?

  19. 19

    受限环境中的Django测试数据库

  20. 20

    在 django 中测试数据库而不是 django 模型

  21. 21

    在Vapor 3中删除测试数据库

  22. 22

    如何使用内存数据库提供程序中的Entity Framework Core测试数据库视图?

  23. 23

    如何仅在内存中运行Django的测试数据库?

  24. 24

    PostgreSQL在线测试数据库

  25. 25

    RSpec测试数据库索引

  26. 26

    如何在理论上使用querybuilder来测试数据库中是否已设置两个给定值中的至少一个

  27. 27

    dbunit如何将真实数据库与测试数据库同步

  28. 28

    在AWS RDS中克隆数据库之一以获取测试数据库

  29. 29

    如何在不指定其他参数的情况下仅播种我的测试数据库?

热门标签

归档