【发布时间】:2015-04-01 08:17:23
【问题描述】:
我是单元测试的新手,并且是在 NUnit 中使用 MOQ 框架的新手。我有一个控制器,它返回 ViewModel 对象列表作为
public ActionResult ValidateOutstandingItems()
{
var entities = _itemsService.GetAll(true).Where(x => x.IsValid == null);
var model = entities.Select(e => _mappingEngine.Map<ItemModel>(e));
return View(model);
}
我需要编写一个单元测试来检查此操作方法返回的项目是否属于List<ItemModel>
我写过这样的东西
[Test]
public void ValidateOutstandingItemsReturnsItemsViewModelList()
{
var itemsService = new Mock<ItemsService>();
var mapper = new Mock<IMappingEngine>();
var itemsList = new List<itemModel>()
{
new itemModel{Id = 1,Name = "item 1"},
new itemModel(){Id=2,Name="item 2"}
};
var controller = new ItemController(itemsService.Object, mapper.Object);
// Act
var result = controller.ValidateItems();
// Assert
var model = ((ViewResult)result).Model as List<ItemModel>;
Assert.True(model.Count == 2);
}
我们如何编写 setup 方法并执行 assert 来测试呢?谢谢
【问题讨论】:
标签: asp.net-mvc nunit moq