3
我试图测试利用智威汤逊声称获取的用户名的客户端的像这样的控制方法:智威汤逊单元测试.NET的核心Web API控制器索赔
[Authorize]
[Route("api/[controller]")]
public class ApprovalsController : Controller
{
// POST api/approvals
[HttpPost]
public IActionResult Post([FromBody]ApprovalViewModel value)
{
// ...
// Incoming approval VM converted here
Approval newApproval = TinyMapper.Map<Approval>(value);
// Values set server-side here.
newApproval.Id = -1;
newApproval.Created = DateTime.Now;
// Claim queried here
newApproval.CreatedBy = User.FindFirst(ClaimTypes.Name).Value;
// Submission to context
_approvalRepo.Insert(newApproval);
_approvalRepo.Update();
// ...
}
但我已经在尝试设想使用Moq和XUnit对上述控制器进行单元测试的方法方面最为幸运。我搜索的许多问题都涉及直接设置控制器的ControllerBase.User属性,但在Aspnetcore.MVC(1.1.1)中,用户已被设置为只读。
我要做什么,在这里?
@Nkosi为了自我教育的目的,你能解释为什么这个问题与*链接完全相同吗?有相似之处,但伊利亚的答案是直接和简单的,我认为这是有价值的。 –