كيف "المعزل Typemock" وهمية أساليب ثابتة؟
-
13-09-2020 - |
سؤال
كما يعرف بعضكم، فمن الممكن بشكل عام أن يسخر من طريقة ثابتة في .NET.
عن طريق السخرية، أقصد استبدال طريقة في فئة ذات طريقة أخرى مع نفس التوقيع، عادة لأغراض الاختبار.
الطريقة الرئيسية المستخدمة لسخرية الطريقة هي أن تعلن أنها افتراضية أو تحديدها في واجهة.لا يسمح لأي من هذين بالطرق الثابتة .NET.
ومع ذلك، هناك أداة باهظة الثمن تسمى "المعزل Typemock" والتي تسمح بالسخرية من الأساليب الثابتة.كيف ينجز المعزل هذا الفذ المستحيل على ما يبدو؟
المحلول
هو في الأسئلة الشائعة .
أساسا، يقوم Typemock بتنسيق مزيف كائن جديد من النوع الأصلي والسنانير في كل طريقة واستدعاء خاصية لهذا الكائن، وإعادة توجيه المكالمة إلى وهمية وإرجاع القيم التي تحددها.يستخدم بعض الفودو العميق في .NET Framework ( .NET Profiler API ، إذا كنت مهتما) للقيام بذلك، ولكن كل شيء "شرعي".من الناحية الفنية يمكن لأي شخص بناء نسخة مكررة من Typemock، لكنني لم أر واحدة.