Database 测试从数据库检索的(大)集合
我目前正在对数据库进行集成测试,我有以下sql语句:Database 测试从数据库检索的(大)集合,database,linq-to-sql,collections,list,integration-testing,Database,Linq To Sql,Collections,List,Integration Testing,我目前正在对数据库进行集成测试,我有以下sql语句: var date = DateTime.Parse("01-01-2010 20:30:00"); var result = datacontext.Repository<IObject>().Where(r => r.DateTime > date).First(); Assert.IsFalse(result.Finished); var date=DateTime.Parse(“01-01-2010 20:30
var date = DateTime.Parse("01-01-2010 20:30:00");
var result = datacontext.Repository<IObject>().Where(r => r.DateTime > date).First();
Assert.IsFalse(result.Finished);
var date=DateTime.Parse(“01-01-2010 20:30:00”);
var result=datacontext.Repository().Where(r=>r.DateTime>date).First();
Assert.IsFalse(result.Finished);
我需要测试从语句中检索到的结果(给定的日期小于对象的日期)是否已完成设置为False。我不知道返回了多少结果,目前我正在获取列表中的第一个对象,并检查该对象是否已完成设置为false。我知道只测试列表中的第一项是无效的测试,作为一种解决方案,我可以遍历列表并检查所有已完成的项,但在测试中加入逻辑有点违背编写“良好”测试的概念
所以我的问题是:有没有人有一个很好的解决方案来正确测试此列表的结果?您可以换一种方式,检查您是否有已完成的日期范围内的结果 如果有,那么你的测试应该失败 我无法测试任何更高级的代码,因此我将为您提供一种简单的方法:
int noOfResultsFinished = datacontext.Repository<IObject>()
.Where(r => r.DateTime > date && r.Finished).Count();
if (noOfResultsFinished > 0)
{
// fail test
}
int noOfResultsFinished=datacontext.Repository()
.Where(r=>r.DateTime>date&&r.Finished).Count();
如果(noOfResultsFinished>0)
{
//失败测试
}
谢谢你的启示!为什么我没有想到这一点:P因为没有人会一直站在他这边的灵感:)