البرمجة

كيفية إضافة Claims في Mock ClaimsPrincipal

لإضافة الـ claims في الـ mock ClaimsPrincipal، يجب التأكد من تحديد الـ claim المطلوبة بشكل صحيح. في الكود الحالي، يتم استخدام الدالة FindFirst للبحث عن الـ claim بـ “name”، لذا يجب التأكد من إضافة الـ claim بنفس الاسم في القائمة claimCollection. كما يجب التأكد من أن الـ claim يتم إضافتها بشكل صحيح إلى الـ mock ClaimsPrincipal.

الكود الذي قمت بتوفيره يبدو صحيحًا، ويمكن أن يحتوي على خطأ في الـ setup الخاص بـ ClaimsIdentity، حيث أنه يجب تحديد نوع الـ claim بشكل صحيح في هذا الجزء. يمكن تحديد الـ claim بالتالي:

csharp
identityMock.Setup(x => x.FindFirst("name")).Returns(claimCollection.FirstOrDefault(c => c.Type == "name"));

بعد ذلك، يمكنك تحديد الـ claim المطلوبة بشكل صحيح في الـ controller الخاص بك:

csharp
return Content(ClaimsPrincipal.Current.FindFirst("name").Value);

يمكنك الآن تشغيل الوحدات الاختبارية ويجب أن يعود الـ viewresult.Content بقيمة “John Doe” كما هو متوقع.

المزيد من المعلومات

لضمان نجاح اختبار الوحدة الخاص بك، يجب أن تتأكد من عدة أمور:

  1. تأكد من أن الـ claim الذي تحاول البحث عنه في الـ ClaimsPrincipal موجود في القائمة claimCollection التي تم تحديدها في الـ mock.
  2. تأكد من أن تحديد الـ claim في الـ Setup الخاص بـ ClaimsIdentity يتم بشكل صحيح ويستخدم الدالة الصحيحة (في هذه الحالة FindFirst).
  3. تأكد من أن تحديد الـ claim في الـ Setup الخاص بـ ClaimsPrincipal يتم بشكل صحيح ويعود القيمة المناسبة.

يمكنك أيضًا إضافة تحقق إضافي للتأكد من أن الـ claim المطلوبة تم العثور عليها بشكل صحيح في الـ ClaimsPrincipal:

csharp
// Arrange // ... // Act var viewresult = sut.GetName() as ContentResult; // Assert Assert.NotNull(viewresult); Assert.That(viewresult.Content, Is.EqualTo("John Doe"));

بعد تأكيد كل هذه الأمور، يجب أن يتم اختبار الوحدة الخاصة بك بنجاح وأن يتم استرداد قيمة الـ claim بشكل صحيح.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر