【发布时间】:2016-03-01 09:07:47
【问题描述】:
我有两个 C++ 函数,每个函数都构建一个 SQLite 数据库。
第一个函数构造数据库版本 1,然后通过添加自第一个版本以来已添加到数据库中的所有表/列将其升级到最新版本。另一个函数构造一个已经在最新版本中的数据库。结果,每个函数都提供了一个数据库,其中包含所有必要的表和列,但没有值。
我希望编写一个单元测试来比较这两个函数的结果。我想测试它们是否具有完全相同的表和列,并且所有列都具有相同的 CHECK 和 NOT NULL 约束。我只需要比较列和表,因为此时数据库中没有值。
我希望以人类可读的形式获取差异(将它们放在错误消息中),但布尔值(不同/不不同)也可以。
鉴于两个数据库位于不同的变量中并且我无法将它们组合起来,我该怎么做?
还有其他问题建议为此使用外部应用程序,但我可以在 C++ 中以简单的方式完成吗?一种可能是对每个数据库执行一些 SQL 命令,并在 for 循环中比较结果,但我需要哪些命令?
【问题讨论】: