تمرين - اختبار التعليمات البرمجية باستخدام Copilot
تعد قدرة Copilot على إنشاء اختبارات الوحدة توفيرا كبيرا للوقت للمطورين. في هذا التمرين، ستستخدم Copilot لإنشاء اختبارات وحدة لمشروع Trie. لنبدأ!
استخدام Copilot لاختبار التعليمات البرمجية
في هذا التمرين، ستستخدم Copilot لإنشاء اختبارات أساسية لأساليب المثلثات.
افتح ملف TrieTests.cs ضمن TrieDictionaryTest
في فئة
TrieTest، أدخل التعليمات البرمجية التالية:// Test that a word is inserted in the trie [TestMethod]أدخل سطرا جديدا، ثم انتظر حتى يقوم Copilot بإنشاء التعليمات البرمجية
يجب أن تنشئ Copilot التعليمات البرمجية التي تدرج كلمة وتؤكد إدراج الكلمة.
في سطر جديد، أدخل التعليمات البرمجية التالية:
// Test that a word is deleted from the trie [TestMethod]أدخل سطرا جديدا، ثم انتظر حتى يقوم Copilot بإنشاء التعليمات البرمجية
يجب أن تنشئ Copilot التعليمات البرمجية التي تدرج كلمة وتؤكد حذف الكلمة.
كرر الخطوات مع المطالبات التالية:
// Test that a word is not inserted twice in the trie // Test that a word is deleted from the trie // Test that a word is not deleted from the trie if it is not present // Test that a word is deleted from the trie if it is a prefix of another wordأثناء متابعة إنشاء التعليمات البرمجية للاختبار، قد تلاحظ أن Copilot يقوم بالإكمال التلقائي للمطالبة وكعب
[TestMethod]والرمز. قدرة Copilot على التنبؤ بالتعليمات البرمجية التي تحتاجها تجعل إنشاء اختبارات الوحدة أسرع. تأكد من التحقق من صحة التأكيدات التي تم إنشاؤها.ومع ذلك، قد لا يتنبأ Copilot دائما بالاختبار الدقيق الذي تحتاجه. قد تحتاج إلى مراجعة التعليمات البرمجية التي تم إنشاؤها وإجراء تغييرات على الاختبار، أو استخدام مطالبة أكثر تحديدا
في سطر جديد، أدخل تعليق التعليمات البرمجية التالي:
// Test AutoSuggest for the prefix "cat" not present in the // trie containing "catastrophe", "catatonic", and "caterpillar"أدخل سطرا جديدا وانتظر حتى يقوم Copilot بإنشاء التعليمات البرمجية
تحقق من أن الاختبار الذي تم إنشاؤه مشابها للآتي، وإجراء أي تغييرات حسب الحاجة:
[TestMethod] public void TestAutoSuggest() { Trie dictionary = new Trie(); dictionary.Insert("catastrophe"); dictionary.Insert("catatonic"); dictionary.Insert("caterpillar"); List<string> suggestions = dictionary.AutoSuggest("cat"); Assert.AreEqual(3, suggestions.Count); Assert.AreEqual("catastrophe", suggestions[0]); Assert.AreEqual("catatonic", suggestions[1]); Assert.AreEqual("caterpillar", suggestions[2]); }في سطر جديد، أدخل تعليق التعليمات البرمجية التالي:
// Test GetSpellingSuggestions for a word not present in the trieأدخل سطرا جديدا وانتظر حتى يقوم Copilot بإنشاء التعليمات البرمجية
تحقق من أن الاختبار الذي تم إنشاؤه مشابها للآتي، وإجراء أي تغييرات حسب الحاجة:
[TestMethod] public void TestGetSpellingSuggestions() { Trie dictionary = new Trie(); dictionary.Insert("cat"); dictionary.Insert("caterpillar"); dictionary.Insert("catastrophe"); List<string> suggestions = dictionary.GetSpellingSuggestions("caterpiller"); Assert.AreEqual(1, suggestions.Count); Assert.AreEqual("caterpillar", suggestions[0]); }
التحقق من عملك
في هذه المهمة، ستختبر الطرق التي قمت بإنشائها باستخدام Copilot للتحقق من أنها تعمل كما هو متوقع.
في مستكشف الملفات، انقر بزر الماوس الأيمن فوق ملف TrieTest.cs وانقر فوق فتح في الوحدة الطرفية المتكاملة
أدخل
dotnet testلتشغيل الاختبارات.تحقق من نجاح جميع الاختبارات.
Passed! - Failed: 0, Passed: 7, Skipped: 0, Total: 7, Duration: 638 ms - TrieDictionaryTest.dll (net7.0)إذا كانت اختباراتك تنتج نتائج مختلفة، فراجع التعليمات البرمجية للعثور على الخطأ وإجراء التحديثات. قم بتشغيل التعليمات البرمجية مرة أخرى لمعرفة ما إذا كنت قد أصلحت المشكلة. متابعة تحديث التعليمات البرمجية وتشغيلها حتى تنتج التعليمات البرمجية النتائج المتوقعة.