Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 测试从数据库检索的(大)集合_Database_Linq To Sql_Collections_List_Integration Testing - Fatal编程技术网

Database 测试从数据库检索的(大)集合

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

我目前正在对数据库进行集成测试,我有以下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: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因为没有人会一直站在他这边的灵感:)