में Automapper (IMapper) का नकल कैसे करें मैं अपने मौजूदा एमवीसी वेब अनुप्रयोग के लिए एक यूनिट परीक्षण लिखने की कोशिश कर रहा हूं। उसमें मुझे ऑटोमैपर में कुछ समस्या का सामना करना पड़ रहा है (IMapper
) जब भी नक्शा फ़ंक्शन का उपयोग कर रहा हूं तो यह null
मान देता है।नियंत्रक
मेरे नियंत्रक कोड:
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);
}
}
नकली मानचित्रण कोड:
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;
}
}
मजाक कोड:
[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);
}
}
मैपर काम नहीं कर रहा है अपने हमेशा दिखा नियंत्रक में null
मूल्य। कृपया मेरी मदद करो। अग्रिम में धन्यवाद।
शायद पूछना चाहें, "मुझे इसकी आवश्यकता क्यों है?" ऑटोमैपर मैपिंग कॉन्फ़िगरेशन पर जोर दे सकता है सही है। संभवतः आपकी उपयोगकर्ता सेवा का परीक्षण किया जाता है। इसलिए आपके नियंत्रकों का परीक्षण करने की कोई आवश्यकता नहीं है। – Mardoxx
हां ठीक है। यह मेरी ग्राहक आवश्यकता है कि वे नियंत्रक के लिए यूनिट परीक्षण करने के लिए भी कहते हैं। फिर httppost में इसमें कुछ अतिरिक्त कार्यक्षमता हो सकती है, इसलिए मुझे इसे करने की ज़रूरत है कृपया मुझे इससे मदद करें। – Dinesh