c# - 在内存中填充 SQLite 以进行单元测试

标签 c# unit-testing sqlite nunit

我正在考虑将 SQLite 用作我的 Oracle 数据库的内存 stub 。我可以轻松地将我所有的 DAL 命令定向到 SQLite,但我现在想知道我应该如何轻松地为每个测试方法填充数据。
每种方法是否应该首先创建所需的表并插入特定测试的行?我应该在 Fixture SetUp 阶段填充内存中的数据吗?有没有其他方法(比如从某个文件中读取它,但丢弃更改以便下一次读取相同)?
也许我应该只用普通 stub stub 数据库,并在需要时返回本地创建的对象(数据集和数据表)?我考虑过尝试这个,但这样我就不会测试传递的实际查询,而是尝试对执行 SQL 选择的方法进行单元测试。我也想测试查询的语法和有效性。

关于此的任何最佳实践?还是只是好主意?

最佳答案

只备份 SQLite-Db-File 怎么样?

SQLite 的好处在于,您可以随心所欲地复制整个数据库文件。您还可以使用 SQL 文件来用数据填充某些 db 文件。我不完全理解你的问题,但是混合使用 db 文件(作为模板)和(可选)一些 SQL 文件来根据需要填充表应该足以解决非常困难的测试问题。

也可以通过转储简单文件和(可选)删除不需要的条目或添加其他条目来轻松创建 SQL 文件。

关于c# - 在内存中填充 SQLite 以进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1037924/

相关文章:

java - 将 JSON 保存到 Sqlite 并显示

javascript - 无法从 sequelize 中的 select 语句中排除关联的字段

sqlite - 在 Win 7 上安装 SQLite ADO.NET 时出错

c# - Xamarin 表格 : Embed symbols in text

c# - 使用 JNA 访问从 Java 编译为 native 代码的 C# 方法

c# - 使用 UnityAutoMoqContainer 注册通用接口(interface)

java - 使用 kotlin 时在单元测试和仪器测试之间共享代码

c# - 关键字 "unsafe"- 在方法或代码块之前?

c# - 如何在 NUnit Assert.That 子句中测试 lambda 表达式的异常和返回值

c# - 模拟对象不具有 Intellisense 中显示的所有属性 - 在一个项目中但在另一个项目中具有它们