c# - 每次测试前更改数据库

标签 c# linq unit-testing sql-server-ce datacontext

我正在为某些方法编写一些分析测试,例如将客户(不同的批量大小 100、1000、10000)添加到数据库中的客户表。由于 LINQ 的支持,我正在使用 SqlCE 数据库。

现在为了达到理想情况,我在每次测试之前更改数据库,以便每个测试都具有相同的数据库。为此,我正在使用 File.Copy() 但在第二次测试中使用 db.customers.FirstOrDefault() 时,出现错误“数据库文件可能已损坏。运行修复实用程序来检查数据库文件。”

我正在测试后清除数据上下文。问题也可能出在 linq 上。我不确定。解决这个问题的任何想法。或这种方法的任何替代方法。需要任何建议。

最佳答案

你不应该那样做单元测试,它容易出错而且速度慢。

相反,使用数据库事务,并在测试结束时或需要时(比如每次测试)回滚数据。

关于c# - 每次测试前更改数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4871990/

相关文章:

c# - 是否可以在 Parallel.For 中定义执行顺序?

c# - 基于 LINQ 中任意键的不同对象列表

java - 对外观类进行单元测试

c++ - Boost Test 寄存器异常翻译器

c# - 聚合与任意,用于扫描 IEnumerable<bool> 等对象

c# - 将导航属性映射到实例变量作为外键

c# - 在 Roslyn (Microsoft CodeAnalysis) 中,如何创建 bool 文字?

vb.net - 用于对具有空值的字段进行排序的表达式 Lambda

c# - C#中如何交叉连接反序列化json数据

c++ gmock使用相同的args调用其他函数