Using Test Conditions in Database Unit Tests

In a typical database unit test, a Transact-SQL test script runs and returns an instance of the ExecutionResult class. يحتوي على مثيلات هذه الفئة على إحدى وحدات فئة البيانات، وقت التنفيذ، و الصفوف التي تأثرت بالبرنامج النصي. كافة القيم بالموضع هو معلومات هو التي تم تجميعها أثناء تنفيذ برنامج نصي. يمكن تقييم هذه نتائج ضمن Transact-SQLبرنامج نصي باستخدام RAISERRORدالة، أو أنها يمكن تقييمه باستخدام حالات الاختبار. Visual Studio Premiumتوفر التعيين من الشروط اختبار المعرفة مسبقاً ل إلى الاستخدام.

شروط اختبار المعرفة مسبقاً

يسرد الجدول التالي حالات اختبار المعرفة مسبقاً التي يمكن إضافتها باستخدام جزء "اختبار الشروط" في اختبار وحدة قاعدة بيانات المصمم.

اختبار شرط

اختبار شرط الوصف

بيانات مجموع اختباري

فشل إذا كان مجموع اختباري لالتعيين النتائج التي تم إرجاعها من Transact-SQLلم يكن برنامج نصي مطابقة المتوقع مجموع اختباري. ل المزيد من المعلومات، راجع تحديد "مجموع اختباري" بيانات.

ملاحظةملاحظة
Th هو لاختبار شرط هو غير مستحسن إذا كان يتم إرجاع بيانات التي تختلف بين الاختبار.على سبيل المثال، إذا كان يحتوي على التعيين النتائج الخاصة بك إنشاء تواريخ أو مرة/مرات، أو يحتوي على أعمدة "التعريف"، ستفشل الاختبارات الخاصة بك لأنه سيكون مختلفاً على تشغيل كل المجموع الاختياري.

مجموعة نتائج فارغ

فشل إذا كان التعيين النتائج التي يتم إرجاعها من Transact-SQLبرنامج نصي هو غير فارغ.

تنفيذ الوقت

فشل إذا Transact-SQLبرنامج نصي للاختبار وقتاً أطول مما هو متوقع، وذلك إلى التنفيذ. وقت تنفيذ الافتراضي هو 30 ثانية.

يطبق وقت تنفيذ إلى البرنامج النصي اختبار الاختبار فقط، لا إلى pre-test البرنامج النصي أو البرنامج النصي ينشر-test.

مخطط المتوقعة

فشل في حالة أعمدة و لا تطابق أنواع البيانات من التعيين النتائج المحددة لشرط الاختبار. يجب تحديد مخطط من خلال الخصائص اختبار الشرط. للحصول على مزيد من المعلومات، راجع تعيين "مخطط المتوقع".

غير مقنع

تنتج دائماً اختبار بنتيجة Inconclusive. هذا هو الخيار الافتراضي شرط تمت الإضافة إلى كل اختبار. Th هو لاختبار شرط هو مُضمن للإشارة إلى أن اختبار التحقق من عدم تم تنفيذه. قم بحذف هذا اختبار للشروط من الخاص بك اختبار بعد تمت الإضافة البعض اختبار الشروط.

مجموعة نتائج فارغ

فشل تعيين النتيجة هو فارغ. يمكنك استخدام هذا شرط الاختبار أو EmptyResultSet باستخدام دالة Transact-SQL@@ RAISERROR في البرنامج النصي للاختبار إلى اختبار ما إذا كان أحد التحديثات التي تعمل بشكل صحيح. على سبيل المثال، يمكنك حفظ قيم pre-تحديث، قم بتشغيل تحديث، قم بمقارنة القيم ينشر-تحديث، و رفع خطأ إذا لم تحصل على نتائج المتوقعة.

عدد الصفوف

فشل إذا كان النتيجة التعيين لا يحتوي على العدد المتوقع من صفوف.

القيمة العددية

فشل في حالة قيمة معينة في التعيين النتائج لا تساوي القيمة المحددة. افتراضي القيمة المتوقعة هو خالية.

ملاحظة

تعين شرط الاختبار وقت تنفيذ الحد الأقصى للوقت الذي Transact-SQLبرنامج نصي للاختبار يجب تشغيلها. إذا كان ترتيب هو الحد الأقصى للوقت هو تجاوز، فشل الاختبار. نتائج الاختبار تضمين أيضا إحصاء مدة، وغيره من شرط الاختبار وقت التنفيذ. تتضمن الإحصائيات مدة ليس وقت التنفيذ بل الوقت إلى الاتصال إلى مرتين لقاعدة البيانات؛ والوقت إلى تشغيل أي نصية الاختبار الأخرى، مثل برنامج نصي pre-test وبرنامج نصي ينشر-test؛ والوقت إلى تشغيل شروط الاختبار. ولذلك، يمكن تمرير اختبار حتى إذا كانت مدة أطول من التنفيذ الخاص به الوقت.

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

يمكنك إضافة شروط الاختبار إلى قاعدة بيانات اختبارات الوحدة باستخدام جزء "شروط اختبار" مصمم قاعدة البيانات وحدة اختبار. لمزيد من المعلومات، راجع كيفية القيام بما يلي: قم بإضافة شروط الاختبار إلى قاعدة بيانات اختبارات الوحدة.

كما يمكنك تحرير تعليمات برمجية الاختبار طريقة مباشرة إلى إضافة المزيد من الوظائف. للمزيد من المعلومات، راجع كيفية القيام بما يلي: الأداة خدمة.NET وتجميع بيانات التوقيت المفصل عن طريق استخدام محلل ملفات التعريف سطر الأوامر وكيفية القيام بما يلي: الكتابة اختبار وحدة قاعدة البيانات الذي يعمل ضمن نطاق عملية مفردة. على سبيل المثال، يمكنك إضافة وظيفة إلى أسلوب اختبار بواسطة إضافة عبارات Assert. لمزيد من المعلومات، راجع Using Transact-SQL Assertions in Database Unit Tests.

عدد مرات الفشل المتوقع

قد تقوم بإنشاء قاعدة بيانات وحدة اختبارات إلى اختبار سلوك الذي لا يجب أن تنجح. هذه من المتوقع فشل يتم يشار إليها أحياناً الاختبار سالبة. قد تضمين بعض الأمثلة التالية:

  • تحقق من أن يفشل إجراء مخزّن الذي يقوم بحذف بيانات الخاصة بالعميل في حالة تحديد المعرف عميل غير صالح

  • تحقق من أن يفشل إجراء مخزّن الذي يقوم بتعبئة طلب إذا لم تم وضع الترتيب أو إذا تمت تعبئة الترتيب بالفعل

  • تأكد من أنه لا يمكن إلغاء الأمر إجراء مخزّن الذي يقوم بإلغاء طلب الطلبات المكتملة أو الطلبات التي تم إلغاؤها بالفعل

يمكنك تعريف قاعدة بيانات اختبارات الوحدة ل إجراءات مخزنة الذي يقوم بطرح استثناء SQL المتوقع. يمكنك إضافة سمة الوحدة اختبار الأسلوب للإشارة إلى المتوقع هو ‏‏ استثناء أو استثناءات. من خلال القيام بذلك، يمكنك منع اختبار من فشل عند حدوث ‏‏ استثناء.

إلى تعليم أسلوب اختبار وحدة قاعدة بيانات باستثناء المتوقعة، أضف السمة التالية:

[ExpectedSqlException(MessageNumber = nnnnn, Severity = x, MatchFirstError = false, State = y)]

حيث:

  • nnnnn هو رقم الرسالة المتوقعة، مثال 14025

  • x هو خطورة استثناء المتوقعة

  • y هو الولاية ‏‏ استثناء المتوقعة

أي عدم تعيين المعلمات التي تم تجاهلها. يتم تمرير كافة هذه المعلمات إلى RAISERRORعبارة SQL في تعليمات برمجية قاعدة بيانات الخاصة بك. إذا قمت بتحديد مطابقة FirstError = صواب، ثم سيقوم السمة مطابقة أي SqlErrors في ‏‏ استثناء. سلوك الافتراضي (MatchFirstError = صواب) هو إلى مطابقة الخطأ أول الذي يحدث فقط.

للحصول على مثال عن كيفية إلى الاستخدام المتوقع استثناءات واختبار وحدة سالبة لقاعدة بيانات، راجع الإرشادات التفصيلية: DA0506:.

تحديد مجموع اختباري بيانات

بعد إضافة شرط اختبار "مجموع اختباري للبيانات" إلى اختبار وحدة قاعدة بيانات الخاصة بك، يجب عليك تكوين مجموع اختباري المتوقع باستخدام إجراء التالي:

لتعيين اتصال متوقع مجموع اختباري

  1. في حالات الاختبار، انقر فوق الشرط اختبار "مجموع اختباري للبيانات" التي تريد إلى تحديد المجموع اختباري.

  2. خصائص فتح نافذة بواسطة الضغط على F4. يمكنك أيضا فتح قائمة عرض و انقر فوق خصائص نافذة.

  3. (اختياري) قد تحتاج إلى تغيير خاصية (اسم) من اختبار شرط أن تكون وصفي.

  4. في خاصية تكوين ، انقر فوق الزر استعراض ( ).

    تكوين ل TestConditionName صندوق حوار تظهر.

  5. تعيين اتصال إلى قاعدة البيانات التي تريد إلى اختبار. لمزيد من المعلومات، راجع كيفية القيام بما يلي: Create a Database Connection.

  6. بشكل افتراضي، Transact-SQLالنص الأساسي الخاص بك اختبار يظهر في جزء التحرير. يمكنك تعديل تعليمات برمجية، إذا لزم الأمر، إلى إنتاج نتائج المتوقعة. ل مثال، إذا كان الاختبار الخاصة بك للتعليمات البرمجية في pre-اختبار، قد تحتاج إلى إضافة هذه التعليمة البرمجية.

    هام

    إذا قمت بتعديل شرط المجموع اختباري الذي قد تم تعيينها المجموع اختباري، مسبقاً أي لم يتم تم الحفظ التغييرات التي أجريتها في جزء "تحرير". يجب إجراء هذه التغييرات مرة أخرى قبل انقر فوق استرداد.

  7. انقر فوق استرداد.

    Transact-SQLهو تنفيذها مقابل المحدد اتصال قاعدة بيانات والنتائج التي تظهر في صندوق الحوار.

  8. إذا كانت النتائج تطابق النتائج المتوقعة من جهاز اختبار، انقر فوق ‏‏موافق . وإلا بتعديل Transact-SQLالأساسي وكرر الخطوتين 6 و 7 و 8 حتى تكون نتائج كـ المتوقع.

    الالقيمة عمود الاختبار شرط يعرض القيمة مجموع اختباري المتوقعة.

يحدد مخطط المتوقع

بعد إضافة شرط اختبار "المخطط المتوقع" إلى اختبار وحدة قاعدة بيانات الخاصة بك، يجب عليك تكوين المخطط المتوقع باستخدام إجراء التالي:

إلى تحديد مخطط متوقعة

  1. في حالات الاختبار، انقر فوق شرط الاختبار "المتوقع المخطط" الذي تريد إلى تحديد مخطط.

  2. خصائص فتح نافذة بواسطة الضغط على F4. يمكنك أيضا فتح قائمة عرض و انقر فوق الإطار خصائص.

  3. (اختياري) قد تحتاج إلى تغيير خاصية (اسم) من اختبار شرط أن تكون وصفي.

  4. في خاصية تكوين ، انقر فوق الزر استعراض ( ).

    تكوين ل TestConditionName صندوق حوار تظهر.

  5. تعيين اتصال إلى قاعدة البيانات التي تريد إلى اختبار. لمزيد من المعلومات، راجع كيفية القيام بما يلي: Create a Database Connection.

  6. بشكل افتراضي، Transact-SQLالنص الأساسي الخاص بك اختبار يظهر في جزء التحرير. يمكنك تعديل تعليمات برمجية، إذا لزم الأمر، إلى إنتاج نتائج المتوقعة. ل مثال، إذا كان الاختبار الخاصة بك للتعليمات البرمجية في pre-اختبار، قد تحتاج إلى إضافة هذه التعليمة البرمجية.

    هام

    إذا قمت بتعديل شرط مخطط متوقعة التي قد تم تعيينها مخطط، مسبقاً أي لم يتم تم الحفظ التغييرات التي أجريتها في جزء "تحرير". يجب إجراء هذه التغييرات مرة أخرى قبل انقر فوق استرداد.

  7. انقر فوق استرداد.

    Transact-SQLهو تنفيذها مقابل المحدد اتصال قاعدة بيانات والنتائج التي تظهر في صندوق الحوار. لأنه يتم التحقق من صحة المخطط، أو شكل، من مجموعة نتائج وليس القيم من نتائج، لم يكن إلى راجع أية بيانات في نتائج التي تم إرجاعها، طالما أن تظهر أعمدة بالطريقة التي تتوقع لهم إلى تظهر.

  8. إذا كانت النتائج تطابق النتائج المتوقعة من جهاز اختبار، انقر فوق ‏‏موافق . وإلا بتعديل Transact-SQLالأساسي وكرر الخطوتين 6 و 7 و 8 حتى تكون نتائج كـ المتوقع.

    العمود القيمة اختبار شرط يعرض معلومات حول المخطط المتوقع. على سبيل المثال، قد تكون "المتوقعة: جدول 2".

اختبار شروط قابلة للتوسعة

في بالإضافة إلى شروط الاختبار predefفيed الستة، يمكنك كتابة شروط الاختبار الجديد الخاص بك. اختبار هذه سيتم عرض الشروط في جزء "شروط اختبار" مصمم قاعدة بيانات وحدة اختبار. لمزيد من المعلومات، انظر كيفية: إنشاء شروط اختبار مصمم اختبار الوحدة قاعدة البيانات.

راجع أيضًا:

المبادئ

Using Transact-SQL Assertions in Database Unit Tests

برامج نصية في قاعدة بيانات اختبارات الوحدة