Tôi đang cố viết một bài kiểm tra đơn vị cho Ứng dụng Web MVC hiện tại của tôi. Trong đó tôi đang đối mặt với một số vấn đề trong automapper (IMapper
) Bất cứ khi nào đang sử dụng chức năng bản đồ nó trả về null
giá trị.Làm thế nào để giả lập Automapper (IMapper) trong bộ điều khiển
My khiển Code:
public class UserAdministrationController : BaseController
{
private readonly iUserService _userService;
private readonly IMapper _mapper;
public NewsController(iUserService userService, IMapper mapper)
{
_userService = userService;
_mapper = mapper;
}
public ActionResult Create(int CompanyID == 0)
{
UserDetail data = _userService(CompanyID);
var Modeldata = _mapper.Map<UserDetailViewModel, UserDetail>(data);
return View(Modeldata);
}
}
Mock Mapping Mã số:
public class MappingDataTest : CommonTestData
{
public Mock<IMapper> MappingData()
{
var mappingService = new Mock<IMapper>();
UserDetailViewModel interview = getUserDetailViewModel(); // get value of UserDetailViewModel
UserDetail im = getUserDetail(); // get value of UserDetails
mappingService.Setup(m => m.Map<UserDetail, UserDetailViewModel>(im)).Returns(interview);
mappingService.Setup(m => m.Map<UserDetailViewModel, UserDetail>(interview)).Returns(im);
return mappingService;
}
}
Mã Mocking:
[TestClass]
public class UserAdminControllerTest
{
private MappingDataTest _common;
[TestInitialize]
public void TestCommonData()
{
_common = new MappingDataTest();
}
[TestMethod]
public void UserCreate()
{
//Arrange
UserAdministrationController controller = new UserAdministrationController(_common.mockUserService().Object, _common.MappingData().Object);
controller.ControllerContext = _common.GetUserIdentity(controller);
// Act
ViewResult newResult = controller.Create() as ViewResult;
// Assert
Assert.IsNotNull(newResult);
}
}
Mapper không hoạt động của nó luôn hiển thị giá trị null
trong bộ điều khiển. vui lòng giúp tôi. Cảm ơn trước.
Có thể muốn hỏi, "Tại sao tôi cần phải?" Automapper có thể khẳng định cấu hình ánh xạ là chính xác. Có lẽ dịch vụ người dùng của bạn đã được kiểm tra. Do đó không cần phải kiểm tra bộ điều khiển của bạn. – Mardoxx
Điều đó tốt. Đây là yêu cầu của khách hàng của họ, họ yêu cầu làm thử nghiệm đơn vị cho bộ điều khiển. sau đó trong httppost nó có thể có một số chức năng bổ sung vì vậy tôi cần phải làm điều đó vui lòng giúp tôi ra khỏi này. – Dinesh