c# - 我正在模拟请求但它显示为空?
问题描述
我正在模拟注册代理用户,但它显示了它的一些属性 Null。
我是新手,我不明白这一点。
我正在尝试制作作为模型的注册代理用户的模拟
[TestMethod]
public async Task ABCreateActionResult_ReturnsBadRequest_Badrequest()
{
RegisterAgencyUserRequest mock = new Mock<RegisterAgencyUserRequest>().Object;
var controller = _accountController.RegisterAgencyUser(mock);
JsonResult viewResult = (JsonResult)await _accountController.RegisterAgencyUser(mock);
}
这是我必须测试的
public async Task<IActionResult> RegisterAgencyUser([FromBody] Models.Request.RegisterAgencyUserRequest request)
{
JsonContentResult jsonContentResult = new JsonContentResult();
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (string.IsNullOrEmpty(request.InvitationCode) || string.IsNullOrWhiteSpace(request.InvitationCode))
return Json(new SharedResponse(AppConstants.ServiceReponses.Error, "A user can't be registered without invitation"));
var invitationDetails = _inviteRepository.GetInvitaionCodeDetails(request.InvitationCode);
if (invitationDetails.Type != (int)InviteType.Agency)
{
return Json(new SharedResponse(AppConstants.ServiceReponses.Error, "Invalid invitation code"));
}
//...
解决方案
您只模拟您正在测试的类的依赖项。所以你不需要模拟 POCO。只需使用如下所示的虚拟数据进行设置:
var model = new RegisterAgencyUserRequest
{
Address = "Value1",
AgencyName = "Value2",
//...
};
并像下面这样使用它:
var controller = _accountController.RegisterAgencyUser(model);
您对该方法的依赖是:
_inviteRepository.GetInvitaionCodeDetails()
因此您需要_inviteRepository
在初始化时模拟并将其注入到被测主题控制器中。
推荐阅读
- python - 如何从存储在 .csv 文件中的 3D 对象创建相机将显示的图像?
- django-rest-framework - 如何通过客户端处理延迟加载数据表?
- python - 将零填充到 Python 列表
- r - 有没有办法使用 tm_layout 自定义图例直方图
- hibernate - Kotlin:即使我全部使用 kotlin-maven 插件,为什么休眠实体类是最终的?
- python - 如何使用 Selenium 在下拉列表中选择项目?
- php - 在第二页上将 php 返回到 html 的问题
- python - FindContours 仅支持 CV_8UC1 图像
- javascript - 关于javascript中while循环的问题
- c# - Google Cloud Vision API - client.DetectText 正在跳过 0