Varolan MVC Web Uygulaması için bir birim testi yazmaya çalışıyorum. O zaman ben automapper bir sorunla karşılaşıyorum (IMapper
) Ne zaman harita fonksiyonu kullanıyorum null
değerini döndürür.Denetleyicide Automapper (IMapper) nasıl yapılır
Benim Kontrolörü Kodu:
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 Haritalama Kodu:
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;
}
}
alay ediyor Kodu:
[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 onun her zaman denetleyicisi null
değerini gösteren çalışmıyor. lütfen bana yardım et. Şimdiden teşekkürler.
"Neden ihtiyacım var?" Diye sormak isteyebilir. Otomatik haritalayıcı, eşleme yapılandırmalarının doğru olduğunu iddia edebilir. Muhtemelen kullanıcı hizmetiniz test edilir. Bu nedenle kontrol cihazlarınızı test etmeye gerek yoktur. – Mardoxx
Ya bu iyi. Bu benim müşteri gereksinimidir, onlar da denetleyici için birim testi yapmak isterler. daha sonra httppost içinde bazı ekleme işlevselliği olabilir, bu yüzden bunu yapmam için bana yardım etmeliyim. – Dinesh