【发布时间】:2015-07-16 17:15:46
【问题描述】:
早安,
我对以下单元测试感到困惑:
1. MVC 控制器:
[HttpGet]
public async Task<PartialViewResult> DoExternalCallsAsync()
{
var model = new MyModel();
await MyStaticLibrary.DoExternalWorkAsync(Server.MapPath("~\\") + "WorkSource.txt", model);
return PartialView("_MyResults", model);
}
2。静态库:
public static async Task DoExternalWorkAsync(string sourcePath, MyModel model)
{
var externalCalls =
System.IO.File.ReadAllLines(sourcePath)
.Where(line => (!string.IsNullOrEmpty(line) && line.First() != '#'))
.Select(p => DoExternalCall(p, model));
await Task.WhenAll(externalCalls);
}
private static async Task DoExternalCall(string urlPath, MyModel model)
{
var result = await GetExternalApiResultAysnc(urlPath);
// some code here...
return;
}
基本上,控制器所做的只是调用外部 API,该 API 执行一些工作并返回结果或引发错误。
外部 Api 没有接口或抽象类。
我该如何进行单元测试呢? N. B. 我无权更改外部 Api 的设计。
谢谢,
【问题讨论】:
标签: c# asp.net asp.net-mvc unit-testing static-libraries