我正在尝试测试以下MVC控制器Action,它正在调用Web API以获取产品列表:
public ActionResult Index()
{
var model = new List<Product>();
using(HttpClient client = new HttpClient())
{
model = client.GetAsync(uri).Result.Content.ReadAsAsync<List<Product>>().Result;
}
return View(model);
}
我正在尝试对此进行单元测试,尝试使用Telerik JustMock进行测试,例如:
[TestMethod]
public void IndexDisplaysAllProducts()
{ // Not sure how to call here
var repo = Mock.Arrange(() => (new List<Product>())).Returns(
new List<Product> {
new Product(),
new Product(),
new Product()
});
var controller = new ProductsController();
var result = (ViewResult)controller.Index();
var model = (List<Product>)result.Model;
Assert.AreEqual(3, model.Count);
}
只是想知道你将如何测试它?
答案 0 :(得分:2)
或者,甚至更简单的测试,你可以使用这种方法来实现一个工厂类,用于完成你使用http客户端的所有东西(GetAsync(uri).Result.Content.ReadAsAsync&gt ;()等)
H个