מלפון חמוץ

התחלתי לשחק עם Cucumber (אני כבר אפילו יודע לכתוב את המילה האנגלית בלי שגיאות כתיב) בשביל ליצור תוכנה מבוססת בדיקות ב rails, והיות והתוכנה צריכה להיות בעברית, התחלתי להיכנס לדוגמאות של מלפפון, וגיליתי שהוא תומך בערבית, אז חשבתי לעצמי "אם הוא תומך בערבית, אז למה שלא תהיה תמיכה בעברית ?!" (גם גיליתי עם זה שברובי, כמו בפרל ודלפי 2009, אפשר ליצור שמות פונקציות עם כל תו unicode כולל תווים עבריים, אבל אני ממש לא אוהב את הרעיון).

אז פניתי למפתח הראשי של מלפפון, והוא הפנה אותי לדף בויקי המסביר כיצד להוסיף שפות. השלב הבא שלי היה לקחת את הדוגמאות של מלפפון שמוצגות בשפות שונות, ולהוסיף דוגמא לעברית. אז התחלתי לעבוד על זה, ויצרתי את חיבור וחילוק. החילוק עבד מצויין אחרי שלמדתי משהו מאוד מעניין על מלפפון שלא הבנתי לפני זה, אבל כאשר עובדים עם זה ולא רק רואים פודקסדים, אז זה עוזר להבין 🙂 ותיקנתי בעיות ניסוח, שיהיו אחידות אצלי, וכתבתי קוד שיודע לקחת, ועבד.

עם הפעולות חיבור שמשתמשות ב Scenario Outline או "מסגרת תסריט" כמו שקראתי לזה כבר היו בעיות.

בשביל להסביר קצת מה זה, אני כותב הסבר קצר: ובכן כמו שהסברתי פעם, מלפפון מרשה לנו לתאר במילים את הפעולות שאנחנו מצפים. אבל כאשר אנחנו רוצים לבדוק מול מידע, אפשר לעשות את זה ב3 דרכים שאני מכיר:

  1. שימוש בטבלאות
  2. שימוש ב fixtures
  3. שימוש ב Factory

כמובן שאני מדבר על rails ב2 הסעיפים האחרונים. אז מה זה טבלאות ?

ובכן מלפפון מאפשר לנו ליצור טבלה של ערכים וכותרות. אפשר באמצעות סוגריים משולשים להגיד שאנחנו מצפים לעמודה מסויימת. המנוע של מלפפון כבר יודע לרוץ על כל עמודה ולשים את הערך בשורה שהוא נמצא בה (טוב זה לא מדוייק עד הסוף אבל זה הרעיון לפחות).

fixtures הוא קובץ yaml אשר מכיל בעצם רשומות קבועות של מידע שאפשר להגיד למלפפון (למשל) למלות לצורך בדיקות תקינות.

בסוף, factory זו שיטה להגיד לבדיקות להוסיף בצורה דינמית מידע, נגיד חוקיות מסויימת איך מידע יכנס ויתנהג ועוד … אני עדיין לא ירדתי לעובי הקורה בנושא (זה בשביל שי שלא יגיד שאני מטעה אנשים סתם), אז קשה לי להסביר כמו שצריך מה זה אומר.

אז השימוש ב Scenario Outline אומר שכל feature יכול להשתמש בצורה גלובלית בתוך החוק בקובץ במידע שמוגדר שם במקום שזה יהיה תקף רק לחוק ספציפי באותו הקובץ.

הבעיה שאני נתקלתי בה היא שמלפפון קורס כאשר אני עובד בצורה ישירה עם "מסגרת תפריט", אבל כאשר אני כותב "תפריט מסגרת", אז הוא לא קורס, אבל גם לא בודק כלום. העניין הוא שבערבית הוא עובד כמו שצריך בצורה ישירה, ככה שאני לא מבין מה אני עושה לא נכון, ונכון לכתיבת פוסט זה, עדיין לא קיבלתי עזרה כלשהי ברשימת הדיוור של rspec (שדנים שם גם על מלפפון).

3 מחשבות על “מלפון חמוץ

  1. ik_5 מאת

    לצערי לא, זה הדבר הראשון שבדקתי (למזלי אני יודע לקרוא את השפה, מה שעוזר לזהות מתי זה הפוך ומתי זה לא אפ מבחינה וויזואלית זה מבלבל).

    אני יוצר כרגע fork לפרוייקט שיהיה קל יותר לזהות מה הבעיה (אולי)

כתיבת תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s