मैं अपने नियंत्रक कोड का परीक्षण करने की कोशिश कर रहा हूं जो दावा प्रिंसिपल से जानकारी प्राप्त करता है। वर्तमान। नियंत्रक कोड में मैंनकली दावों में दावों को कैसे जोड़ें दावे प्रिंसिपल
public class HomeController {
public ActionResult GetName() {
return Content(ClaimsPrincipal.Current.FindFirst("name").Value);
}
}
और मैं दावे के साथ मेरी ClaimsPrincipal उपहास करने के लिए कोशिश कर रहा हूँ लेकिन मैं अभी भी दावे से किसी भी नकली मूल्य नहीं है।
// Arrange
IList<Claim> claimCollection = new List<Claim>
{
new Claim("name", "John Doe")
};
var identityMock = new Mock<ClaimsIdentity>();
identityMock.Setup(x => x.Claims).Returns(claimCollection);
var cp = new Mock<ClaimsPrincipal>();
cp.Setup(m => m.HasClaim(It.IsAny<string>(), It.IsAny<string>())).Returns(true);
cp.Setup(m => m.Identity).Returns(identityMock.Object);
var sut = new HomeController();
var contextMock = new Mock<HttpContextBase>();
contextMock.Setup(ctx => ctx.User).Returns(cp.Object);
var controllerContextMock = new Mock<ControllerContext>();
controllerContextMock.Setup(con => con.HttpContext).Returns(contextMock.Object);
controllerContextMock.Setup(con => con.HttpContext.User).Returns(cp.Object);
sut.ControllerContext = controllerContextMock.Object;
// Act
var viewresult = sut.GetName() as ContentResult;
// Assert
Assert.That(viewresult.Content, Is.EqualTo("John Doe"));
व्यूअरल्ट। सामग्री यूनिट परीक्षण चलाने के बाद खाली है। अगर मैं नकली दावा जोड़ सकता हूं तो कोई मदद। धन्यवाद।
धन्यवाद! मुझे लगता है कि मैं इसे जटिल बना रहा था। तो हमें वास्तव में 'दावा प्रिंसिपल' का नकल करने की आवश्यकता कब होती है? जब से मैं Google पर जांच करता हूं, तब से कई लोग 'दावा प्रिंसिपल' का मज़ाक उड़ा रहे हैं। इस तरह, http://stackoverflow.com/questions/14190066/is-there-any-way-i-can-mock-a-claims-principal-in-my-asp-net-mvc-web- appplication। – Henry
आपका स्वागत है :) उस उत्तर में, धारणा है कि एसयूटी केवल हैस्क्लेम विधि को कॉल करेगा, बहुत नाजुक है। यदि एक दिन SUT (शायद तीसरे पक्ष कोड) को प्रिंसिपल के अतिरिक्त सदस्यों तक पहुंचने की आवश्यकता है, तो परीक्षण टूट जाएगा। मैं प्रायः निर्भरताओं को मैन्युअल रूप से उप-वर्गीकरण करना और उन्हें "परीक्षण मार्ग" में लागू करना पसंद करता हूं, जबकि मुझे लगता है कि वे अभी भी लगातार व्यवहार करते हैं। –
शानदार! मेरे लिए पूरी तरह से काम किया। धन्यवाद! –