我需要为这个控制器编写单元测试(最重要的是,我被要求获得代码覆盖率)。
public class MyController : Controller
{
public async Task<ActionResult> Index()
{
ViewBag.Title = "Home Page";
var httpClient = new HttpClient();
var json = await httpClient.GetStringAsync(ConfigurationManager.AppSettings["MyCustomAPI"]);
var tasks = JsonConvert.DeserializeObject<List<MyObject>>(json);
return View(tasks);
}
}
我已经花了两天时间阅读有关这个问题的想法,但是我无法理解。
我一直在考虑像这样注入 HttpClient:
private readonly HttpClient _httpClient;
public TasksController(HttpClient httpClient)
{
_httpClient = httpClient;
}
将HttpClient传递给控制器构造函数可能不是一个好主意。
然后我一直在关注这篇指南,它使用FakeItEasy,但我没能将此解决方案适应我的要求。
我该如何进行测试?