פרק 4: מאת רוברט בווטרלו, אונטריו (יולי 2019)
הפרקים הקודמים
אם אתם עובדים על Blink, יכול להיות שאתם יודעים על web_tests (לשעבר LayoutTests).
בדיקות פלטפורמת אינטרנט (WPT) נמצאות ב-web_test/external/wpt
. WPT הוא
היא הדרך המועדפת לבדוק פיצ'רים שנחשפים לאינטרנט, כי הם משותפים עם אחרים
בדפדפנים דרך GitHub. יש שני סוגים עיקריים של בדיקות: reftests ו
testharness.js.
באמצעות reftests תוכלו לצלם צילומי מסך של שני דפים ולהשוות ביניהם. כברירת מחדל, צילומי מסך
מתבצעות אחרי שהאירוע load
מופעל. אם מוסיפים כיתה ב-reftest-wait
לרכיב <html>
, צילום המסך ייתווסף לאחר הסרת המחלקה.
המשמעות של בדיקות מושבתות היא צמצום הכיסוי של הבדיקות. חשוב לשים לב לנושאים שקשורים לגופנים
פתאומיות; צריך להשתמש בגופן Ahem
כשהדבר אפשרי.
testharness.js הוא framework של JavaScript לבדיקת כל דבר מלבד רינדור. כשכותבים בדיקות testharness.js, שימו לב לתזמון, ולזכור לנקות את כל המדינות.
זמן קצוב בעייתי ו- מצבי דליפה פוטנציאליים:
<script> promise_test(async t => { assert_equals(await slowLocalStorageTest(), "expected", "message"); localStorage.clear(); }); </script>
בדיקה טובה יותר עם זמן קצוב לתפוגה ניקוי:
<meta name="timeout" content="long"> <script> promise_test(async t => { t.add_cleanup(() => localStorage.clear()); assert_equals(await slowLocalStorageTest(), "expected", "message"); }); </script>
אם צריך פעולות אוטומטיות שלא זמינות באינטרנט, אפשר להשתמש ב-testdriver.js.
אפשר לבצע תנועת משתמש מ-test_driver.bless
, ליצור רכיבים מורכבים
קלט מהימן של test_driver.action_sequence
, וכו'.
WPT מספק גם כמה תכונות שימושיות בצד השרת באמצעות שמות קבצים.
בדיקות מרובות גלובליות (.any.js
והחברים שלו) מריצים את אותן בדיקות במספרים שונים
היקפים (window
, worker
וכו'); .https.sub.html
מבקש/ת את הבדיקה לטעון
ב-HTTPS עם תמיכה בהחלפה של צד השרת כמו בדוגמה הבאה:
var anotherOrigin = "https://{{hosts[][www1]}}:{{ports[https][0]}}/path/to/page.html";
אפשר להפעיל תכונות מסוימות גם במחרוזות שאילתה.
baz.html?pipe=sub|header(X-Key,val)|trickle(d1)
מאפשר החלפה, מוסיף X-Key: val
לכותרות של התשובה, ומשהה שנייה אחת לפני שליחת התגובה. חיפוש של 'צינורות'
באתר web-platform-tests.org.
WPT יכול גם לבדוק התנהגויות שלא נכללות עדיין במפרטים.
נותנים לבדיקה את השם .tentative
. אם דרוש לך ממשקי API פנימיים של Blink (למשל,
testRunner
, internals
), העברת הבדיקות לweb_tests/wpt_internal
.
שינויים שמבוצעים ב-WPT מיוצאים באופן אוטומטי ל-GitHub. תוכלו לראות
תגובות של בוט בCL. גם שינויים שבוצעו ב-GitHub מספקים אחרים
שמיובאות באופן רציף. כדי לקבל באגים שנשלחים באופן אוטומטי כאשר כשלים חדשים
מיובאים, יוצרים קובץ OWNERS
בספריית משנה ב-WPT:
# TEAM: your-team@chromium.org
# COMPONENT: Blink>YourComponent
# WPT-NOTIFY: true
emails-here-will-be-cc@chromium.org
משאבים נוספים
- רוצה לדעת איך הבדיקות שלך פועלות בדפדפנים אחרים ואיך יכולת פעולה הדדית מהי התכונה שלך? משתמשים ב-wpt.fyi.
- מחפשים מסמכים נוספים על ממשקי API, הנחיות, דוגמאות, טיפים ועוד? נכנסים לאתר web-platform-tests.org.