我必须编写一个程序,基本上从文件中读取x行,然后尝试在数据库中找到它,然后获取文件中的一些信息并更新数据库中行的信息。
如果所有其他方法都失败,请将其作为新行插入数据库中。
所以基本上进行了大量的插入和更新。
我尝试进行单元测试,因为我正在更新很多字段,我想确保每条信息都位于正确的位置(即没有使用名字或类似的内容设置电子邮件地址)。
但是我不知道该怎么做,因为我认为这是程序方法
// get records from file
foreach record in file
{
db record = find if it is in db
if(record != null)
{
if(do another logic check)
{
// update record
}
else if(do another logic check)
{
// update record
}
else
{
// do some more logic
if(do another check)
{
// update record
}
}
}
else
{
// do some more logic checks and do inserts.
}
}
我在一个 void 方法中看到了这个,可能还有一些私有(private)方法(例如更新记录部分)。现在我应该如何对其进行单元测试?我想对第一个 if 进行单元测试(进行另一个逻辑检查),如果说我发送的某些记录满足这些条件。
但是,由于这些是私有(private)方法,我无法对它们进行单元测试,现在我看不到该方法返回任何内容,因为它将遍历数百条记录,并且我可能会将大部分内容打印到错误日志文件什么的。
我向您展示的代码位于服务层中。我会用最小起订量模拟数据库方法调用。
该应用程序是一个控制台应用程序。
有什么建议我可以更好地分解它以便我可以检查逻辑吗?
最佳答案
您可以模拟数据库调用,也可以模拟记录类型并传递模拟的内部方法
关于c# - 如何对此进行单元测试?具有大量数据库调用的大 foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12731386/