我想测试调用 MVC WebApi 并返回 JSON 响应的服务代理类。
public class CarServiceProxy
{
public CarsCollection GetCars()
{
CarsCollection cars = new CarsCollection();
string api = "api/Car/GetCars";
var response = httpClient.GetAsync(api).Result;
if (response.IsSuccessStatusCode)
{
cars = response.Content.ReadAsAsync<CarsCollection >().Result;
}
return cars;
}
}
然后我的 MVC WebSite 控制器类将上述代理类称为:
public ActionResult Index()
{
CarsCollection cars = this.carsServiceProxy.GetCars();
return View(cars);
}
现在要单独测试两者,我可以使用 MOQ 和模拟 carServiceProxy 来测试我的控制器,并在我的测试中使用一些假数据来伪造 CarsCollection。到目前为止我还好。
但是,如何使用 MOQ 测试代理类来模拟 API 响应 (JSON)?我认为我确实需要测试,因为 JSON 到 C# 的转换发生在该类中,如果有人更改了我的模型 CarsCollection,那可能会中断。所以我确实需要测试代理类。