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

Noa*_*Gal 5 c# sqlite nunit unit-testing

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

关于此的任何最佳做法?或者只是好主意?

Jue*_*gen 2

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

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

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