בדיקות פונקציונליות
לפני קריאה של חלק זה, מומלץ לקרוא קודם את הדוקומנטציה של Selenium ושל PHPUnit. אנו מסכמים בחלק זה את העקרונות הבסיסים לכתיבת בדיקות פונקציונליות ב Yii:
בדומה לבדיקות יחידה, בדיקה פונקציונלית נכתבת במונחים של מחלקה
XyzTestהיורשת מהמחלקה CWebTestCase, כשXyzמתייחס למחלקה הנבדקת. בגלל שהמחלקהPHPUnit_Extensions_SeleniumTestCaseהינה מחלקת אב למחלקה CWebTestCase, אנו יכולים להשתמש בכל המתודות הנמצאות בה.מחלקת הבדיקה הפונקציונלית נשמרת בקובץ PHP בשם
XyzTest.php. על פי המוסכמות, הקובץ נשמר תחתprotected/tests/functional.מחלקת הבדיקות בעיקר מכילה סט של מתודות לבדיקה בשם
testAbc, כשAbcהוא בדרך כלל שם האפשרות שנבדקת. לדוגמא, בכדי לבדוק את אפשרות התחברות המשתמשים אנו יכולים לקרוא למתודה בשםtestLogin.מתודת בדיקה בדרך כלל מכילה רצף של ביטויים אשר ישלחו פקודות עבור Selenium בכדי לתקשר מול אפליקצית הווב הנבדקת. בנוסף היא מכילה בדיקות לוודא שהאפליקציה מגיבה כמו שצריך.
לפני שנסביר כיצד לכתוב בדיקות פונקציונליות, הבא נבדוק את הקובץ WebTestCase.php שנוצר על ידי פקודת הכלי yiic webapp. קובץ זה מגדיר את המחלקה WebTestCase שיכול לשרת כמחלקת בסיס לכל מחלקות הבדיקה הפונקציונליות.
המחלקה WebTestCase בעיקר מגדירה את הקישורים של העמודים אותם צריך לבדוק. לאחר מכן במתודות בדיקה, אנחנו יכולים להשתמש בקישורים רלטיבים בכדי להגדיר אילו עמודים לבדוק.
כמו כן אנחנו צריכים לשים לב שבקישור הבדיקה הבסיסי, אנחנו משתמשים ב index-test.php כקובץ הכניסה הראשי במקום index.php. ההבדל היחידי בין index-test.php ו index.php הוא שהקודם משתמש בקובץ הגדרות test.php והשני משתמש בקובץ הגדרות main.php.
כעת אנו נסביר כיצד לבדוק את האפשרות של תצוגה הודעה בבלוג. קודם אנו כותבים את מחלקת הבדיקה בצורה הבאה, בידיעה שמחלקת הבדיקה שאנו כותבים יורשת ממחלקת הבסיס שכרגע הסברנו עליה:
בדומה לכתיבת מחלקה לבדיקת יחידה, אנו מגדירים את הטבלאות הקבועות שאנו משתמשים בבדיקה זו. כאן אנו מצביעים שהטבלה הקבועה Post צריכה להיות בשימוש. במתודת הבדיקה testShow, אנו קודם אומרים ל Selenium-RC לפתוח את הקישור post/1. זהו קישור רלטיבי, והקישור המלא נוצר על ידי איחוד הקישור הזה לקישור הבסיס שהגדרנו במחלקת הבסיס (זאת אומרת http://localhost/yii/demos/blog/index-test.php/post/1). לאחר מכן אנו מאמתים שאנו יכולים למצוא את הכותרת של ההודעה sample1 בעמוד הנוכחי. ואנו מוודאים שהעמוד מכיל את הטקסט Leave a Comment.
» Tip|טיפ: לפני הרצת בדיקות פונקציונליות, יש להפעיל את שרת Selenium-RC. ניתן לבצע זאת על ידי הרצת הפקודה java -jar selenium-server.jar תחת התיקיה בה מותקן שרת ה Selenium-RC.
«div class="revision"»$Id: test.functional.txt 1662 2010-01-04 19:15:10Z qiang.xue $«/div»