小编use*_*610的帖子

"模拟"数据库与"真实"数据库行为之间的差异

我们将C#和Linq2SQL与MS SQL Server数据库一起使用.我们有一个mockdatacontext来进行一些单元测试.在测试时,我们发现了两种不同的行为,具体取决于是使用"真实"还是"模拟"数据库.

场景1:真实数据库

数据库中有5条记录:

db = realDatabase
db.InsertOnSubmit(new record)

var count1 = db.getTable.Count()

db.SubmitChanges()

var count2 = db.getTable.Count()
Run Code Online (Sandbox Code Playgroud)

count1 = 5 count2 = 6

场景2:模拟数据库

数据库中有5条记录:

db= mockDatabase

db.InsertOnSubmit(new record)

var count1 = db.getTable.Count()

db.SubmitChanges()

var count2 = db.getTable.Count()
Run Code Online (Sandbox Code Playgroud)

count1 = 6 count2 = 6

*"模拟"数据库在调用SubmitChanges()之前已经知道新记录,因此它包含在计数中.为了测试,我们需要两个行为相同.

有没有其他人遇到这个问题,你能建议一个解决方案吗?

c# linq database mocking count

3
推荐指数
1
解决办法
1695
查看次数

标签 统计

c# ×1

count ×1

database ×1

linq ×1

mocking ×1