من الصعب جدًا اختبار وظيفة صفحة واحدة في تطوير الويب. بعد إدخال اسم المستخدم وكلمة المرور من الصفحة الرئيسية، لا يمكنك الوصول إلى الصفحة التي تريد اختبارها إلا بعد بعض العمليات. (في الواقع، بغض النظر عن التطوير الذي تقوم به، فإن اختبار وظيفة واحدة أمر مزعج للغاية). بموقف حذر، عادةً ما أحب كتابة بضع فقرات واختبارها مرة واحدة، ومن الواضح أنه من غير الاقتصادي للغاية بدء المشروع بأكمله للاختبار في كل مرة.
عادةً ما أقوم بإضافة تكوين جديد للاختبار في الحل، وأضف توجيه التحويل البرمجي مثل "اختبار" فيه، ثم أضع بعض شروط الاختبار وطرق الاختبار تحت هذا التوجيه في الكود. عندما لا يقدم فريق التطوير مفاهيم مثل اختبار الوحدة، لا أرغب في القيام بهذا النوع من الأشياء عن طريق إضافة مشروع اختبار جديد. وفي حالات مثل وجود صفحة واحدة ضمن الويب، لا أعرف كيفية المتابعة. لذلك، من المألوف أكثر استخدام تعليمات التجميع الخاصة بي في الماضي.
(عندما كنت أكتب بعض الأشياء غير المتعلقة بالويب، أحببت أيضًا كتابة طريقة الاختبار والفئة نفسها في ملف، ثم استخدام تعليمات التجميع لتمييزها. إذا كنت تريد الاختبار، فما عليك سوى تحديد "اختبار" مباشرة في بيئة التطوير، ثم قم بتشغيل TestDriven لاختباره، فهو يوفر الكثير من الجهد على الجهاز دون بدء المشروع بأكمله.
إذا كنت تقوم بالتطوير باستخدام C#، في بيئة التطوير، إذا لم يتم استيفاء شروط التجميع الحالية، فستتحول هذه الرموز إلى اللون الرمادي ويمكن وضع مسافة بادئة لها، وهو أمر ليس قبيحًا على الإطلاق)
ومع ذلك، لم تعد حيلتي تعمل ضمن VS2005، والآن أصبح تطوير الويب مختلفًا قليلاً عن ذي قبل. لا يمكنني العثور على مكان لإضافة تعليمات التجميع عندما أبحث عنه. لا يزال بإمكان المطورين غير التابعين للويب العثور على مكان لإضافتهم. بعد الكفاح لفترة طويلة، اكتشفت أنني قمت الآن بوضع بعض الإعدادات في Web.config، والتجميع الشرطي ليس استثناءً.
على سبيل المثال، نحتاج الآن إلى إضافة توجيه التجميع الشرطي "اختبار". في ملف Web.config، قم فقط بإضافة العبارة التالية ضمن قسم <compilation>.
<المترجمين>
<المترجم لغة = "vb"
نوع = "Microsoft.VisualBasic.VBCodeProvider، النظام، الإصدار = 2.0.0.0، الثقافة = محايدة، PublicKeyToken = B77A5C561934E089"
ملحق = ".VB"
المترجم الخيارات = "/ تعريف: Debug = صحيح /define:Trace=True /define:Test=True "/>
<compiler language="c#"
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=محايد, PublicKeyToken=B77A5C561934E089"
Extension=" .cs"
compilerOptions="/d:DEBUG;TRACE;Test"/>
</compilers>
من المهم جدًا إضافة <compiler> لكل لغة، بالطبع، إذا لم يتم استخدام اللغة المقابلة في المشروع، فيمكنك تجاهلها أو حذفها. بشكل عام، يتم استخدام C# وVB في كثير من الأحيان، لكنني أستخدم هذين الاثنين فقط.
بعد تعيينه في Web.config، ليست هناك حاجة لتحديد تعليمات التجميع في كل صفحة تحتاج إلى الاختبار، ومع ذلك، فهي لا تزال ليست جيدة كما كانت من قبل، وكان يكفي تحديد التكوين مباشرة شريط أدوات IDE الآن لا بد لي من كتابة أشياء كثيرة، وخاصة لا يزال غير مريح للتبديل. على سبيل المثال، إذا كنت لا أرغب في البدء ضمن شرط "الاختبار"، فيجب أن أذهب إلى Web.config وأعلق على الفقرة أعلاه.
وفقًا لـ MSDN، ضمن .Net 2.0، تم إهمال عنصر <compiler> ولا يبدو أن النهج الذي أتبعه هو الطريق الصحيح.