问题描述
var projects = new Dictionary<string,string>
{ {"7000316139.13.01","Project 1" },... (all the records in the dictionary are sequential from here)
}
public IActionResult GetProjectByProjectCode(string projectCode)
{
try
{
var project = _repository.Project.GetProjectByProjectCode(projectCode);
if (project == null)
{
_logger.LogError($"Project with project code {projectCode},has not been found in db.");
return NotFound();
}
else
{
_logger.LogInfo($"Returned project with project code {projectCode}");
var projectResult = _mapper.Map<ProjectDto>(project);
return Ok(projectResult);
}
}
catch (Exception ex)
{
_logger.LogError($"Something went wrong inside GetProjectByProjectCode action: {ex.Message}");
return StatusCode(500,"Internal server error");
}
}
我需要的是访问Dictionary作为get方法的数据源。
我试图直接将字典直接放入get方法中,但失败了。
我希望看到的结果如下: 7000316139.13.01项目1
这是存储库代码
public Project GetProjectByProjectCode(string projectCode)
{
return FindByCondition(project => project.ProjectCode.Equals(projectCode))
.FirstOrDefault();
}
我希望这会有所帮助
解决方法
您可能想添加_repository.Project.GetProjectByProjectCode方法的另一个“模拟”实现,也许重新实现包含该方法的整个类。该实现应从内联字典而不是数据库中获取值。 然后,当您处于“测试模式”时,添加一些机制以使用替代实现,否则,将添加标准实现。
除此之外,我建议您阅读有关单元测试范例以及相关工具和技术的一些东西。