“[I bring] anything I can bring to it [writing a song]. Thought, meditation, drinking, disillusion, insomnia, vacations… Because once the song enters the mill, it’s worked on by everything that I can summon. And I need everything. I try everything. I try to ignore it, try to repress it, try to get high, try to get intoxicated, try to get sober, all the versions of myself that I can summon are summoned to participate in this project, this work force. I try everything. I’ll do anything. By any means possible.” -- Leonard Cohen, On Writing A Song
לא משאירים אף אבן על אבן - אורן רובין ורן תבורי. היום בתוך הזירה - בדיקות ב-JS.
אורן מתעסק ב-JS קצת יותר משבוע, עם נגיעות עזות של קומפילציה ועיבוד מבוזר. נאחל לו בהצלחה.
מתחילים ב-Unit Tests. לא פופולרי ב-Client Side, אבל חשוב.
MVC ב-Client - זה טוב לבדיקות.
מה ש-UI הוא UI ומה שלא - לא. כמה פשוט, ככה נכון. גם בבדיקות.
את הבדיקות מריצים על דף HTML רגיל.
כלים כמו Jasmine ו-QUnit מאוד פופולריים.
Jasmine מאוד קל להרחבה, בנוי בצורה של RSpec ונותן Output מאוד נוח לקריאה.
Sinon עושה סדר (או לפחות ייתן לכם לעשות Mocking), מאפשר לכם לדמות שרת שעונה לקריאות AJAX לדוגמה, ובכלל - עושה קפה ופאנלים.
רוצים להריץ את הקוד על דפדפן אמיתי? סבבה, אפשר, למה לא...
jsTestDriver מראה כיסוי (באחוזים ובשורות).
ב-IntelliJ אפשר להריץ בדיקות מרוחקות על דפדפן.
Test Coverage - קווים לדמותו (או, במלים אחרות - כן 100% או לא 100%?)
Selenium - גם חינמי, גם קוד פתוח, גם נשלט מרחוק עם API, גם שולט בדפדפן. הללויה.
Selenium הוא DOM-based.
ב-Selenium צריך לכתוב את כל הבדיקות בנפרד מהאפליקציה, אי אפשר באמת לעשות Reuse של קוד.
ואם לא רוצים לבדוק בהתבסס על תמונה (ולא על אלמנט ב-DOM)? בשביל זה יש את EggPlant ואת Sikuli. התחזוקה - קשה, קשה...
אורן עובד בחברה צעירה - Applitools.
Applitools מנסים לפתור את הבעיה ש-EggPlant ודומיה ניסו לפתור - אבל נכון.
Applitools מנסים לבדוק - לדוגמה - את ה-Layout של המסך.
את הבדיקות אפשר לכתוב כבר על הMock-ups של האתר.
הטסטים שנוצרים בעצם מגדירים את האפליקציה.
Keyword Driven Test - נכשל. בינתיים.
אורן ישמח אם תיצרו איתו קשר.
הקובץ נמצא כאן
האזנה נעימה
ותודה רבה ליותם אורון על התמלול!