运行测试用例成功但数据库中的数据未更新时,我收到系统空异常,该异常可通过使用控制器上下文解决但无法更新数据
**Unit test code**
CANVAS_FIRM Firm = new CANVAS_FIRM
{
AUM = FirmToUpdate.AUM,
CANVAS_ADVISOR = FirmToUpdate.CANVAS_ADVISOR,
CANVAS_FIRM_ID = FirmToUpdate.CANVAS_FIRM_ID,
FIRM_NAME = FirmToUpdate.FIRM_NAME,
Street = FirmToUpdate.Street + "_" + maxId,
City = FirmToUpdate.City + "_" + "Updated",
State = FirmToUpdate.State + "_" + "Updated",
Zip = FirmToUpdate.Zip,
HasDiscretion = FirmToUpdate.HasDiscretion,
ClientLogoUrl = FirmToUpdate.ClientLogoUrl,
PlatformIds = FirmToUpdate.PlatformIds
};
UsersController _requestUsersController = new UsersController();
_requestUsersController.ValueProvider = new FormCollection().ToValueProvider();
var request = new Mock<HttpRequestBase>();
//request.Setup(r => r.HttpMethod).Returns("POST");
var mockHttpContext = new Mock<HttpContextBase>();
mockHttpContext.Setup(c => c.Request).Returns(request.Object);
var controllerContext = new ControllerContext(mockHttpContext.Object, new RouteData(), new Mock<ControllerBase>().Object);
_requestUsersController.ControllerContext = controllerContext;
JsonResult result = _requestUsersController._SaveFirm(Firm);
控制器代码
CANVAS_FIRM ExistingFirm = CanvasFirmRepository.GetFirmONLYForEditing_DeveloperBeware(db, Firm.CANVAS_FIRM_ID);
Succeeded = TryUpdateModel(ExistingFirm, "Firm");
Firm = CanvasFirmRepository.SaveFirm(db, ExistingFirm, true);