我想與用戶身份設置爲測試Web服務調用(假裝的用戶登錄)如何在用moq和nunit測試web api控制器時模擬用戶身份?
我檢查了無數的職位和StackOverflow的答案,但我並沒有完全得到我想要的答案。
離我最近的就是這個。
var context = new Mock<HttpContextBase>();
var mockIdentity = new Mock<IIdentity>();
context.SetupGet(x => x.User.Identity).Returns(mockIdentity.Object);
mockIdentity.Setup(x => x.Name).Returns("abc");
而在這一點上,我相信我一定要設置controllercontext和上下文變量需要以某種方式餵養。
我見過很多關於MVC控制器的例子,但我找不到適用於ApiController的例子。有人可以澄清這一點嗎?
謝謝!
感謝這篇文章,我會測試並給你一個更新! – rlee923
我已經嘗試了您的建議,並且已添加到聲明標識中的聲明項目既未通過RequestContext.Principal.Identity.Name也未通過User.Identity.Name(即未設置名稱值)進行檢查。檢查身份下的索賠是否是標準做法? – rlee923
感謝Hung,您的.net核心web api幫助我解決了這個問題。 – Neville