我必须制作一个程序,该程序基本上从文件中读取 x 行,然后尝试在数据库中找到它,然后获取文件中的一些信息并更新数据库中行的信息。
如果所有其他方法都失败,则将其作为新行插入 db。
所以基本上很多插入和更新。
我尝试进行单元测试,因为我正在更新很多我想确保每条信息都正确的字段(即不是用名字或类似名称设置的电子邮件地址)。
但是我不知道该怎么做,因为我认为这是程序方法
// 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 方法中看到了这一点,可能带有一些私有方法(例如更新记录部分)。现在我应该如何对此进行单元测试?我想对第一个 if(做另一个逻辑检查)进行单元测试,如果说我发送的某些记录满足这些条件。
但是,由于这些是私有方法,我无法对它们进行单元测试,所以现在我看不到该方法返回任何内容,因为它将经过数百条记录,并且我可能会将大部分内容打印到错误日志文件中或者其他的东西。
我向您展示的代码位于服务层中。我会用 moq 模拟 db 方法调用。
该应用程序是一个控制台应用程序。
有什么建议可以让我更好地分解它,以便我可以检查逻辑吗?