4. Bölüm:, Robert tarafından Waterloo, ON'da (Temmuz 2019)
Önceki bölümler
Blink üzerinde çalışıyorsanız web_tests (eski adıyla LayoutTests) özelliğini biliyor olabilirsiniz.
web-platform-tests (WPT) web_test/external/wpt
içinde bulunur. WPT
diğer kullanıcılarla paylaşıldığından, web'de kullanıma sunulan özellikleri test etmenin tercih edilen yöntemi
gitmem gerekti. İki temel test türü vardır: reftests ve
testharness.js testleridir.
reftests iki sayfanın ekran görüntülerini alıp karşılaştırır. Varsayılan olarak, ekran görüntüleri
load
etkinliği tetiklendikten sonra alınır; reftest-wait
sınıfı eklerseniz
öğesini <html>
öğesine eklediğinizde ekran görüntüsü sınıf kaldırıldığında alınır.
Testlerin devre dışı bırakılması, test kapsamının daralmasına neden olur. Yazı tipi ve
gevşeklik; Mümkün olduğunda Ahem
yazı tipini kullanın.
testharness.js herhangi bir şeyi test etmeye yönelik bir JavaScript çerçevesidir hariçtir. testharness.js testleri yazarken zamanlamaya, ve global durumu temizlemeyi unutmayın.
Kesintili zaman aşımı potansiyel sızıntı durumları:
<script> promise_test(async t => { assert_equals(await slowLocalStorageTest(), "expected", "message"); localStorage.clear(); }); </script>
Uzun zaman aşımı süresiyle daha iyi bir test temizleme:
<meta name="timeout" content="long"> <script> promise_test(async t => { t.add_cleanup(() => localStorage.clear()); assert_equals(await slowLocalStorageTest(), "expected", "message"); }); </script>
Otomasyona ihtiyacınız varsa testdriver.js'yi kullanın. Aksi takdirde web'de otomasyondan yararlanamazsınız.
test_driver.bless
uygulamasından bir kullanıcı hareketi alabilir, karmaşık yapı oluşturabilir,
test_driver.action_sequence
vb. ile güvenilir girişler
WPT, dosya adları aracılığıyla sunucu tarafı bazı yararlı özellikler de sunar.
Çoklu küresel testler (.any.js
ve arkadaşları) aynı testleri farklı
kapsamlar (window
, worker
vb.); .https.sub.html
, testin yüklenmesini istiyor
aşağıdaki gibi sunucu tarafı değiştirme desteğiyle HTTPS üzerinden:
var anotherOrigin = "https://{{hosts[][www1]}}:{{ports[https][0]}}/path/to/page.html";
Bazı özellikler sorgu dizelerinde de etkinleştirilebilir.
baz.html?pipe=sub|header(X-Key,val)|trickle(d1)
, değiştirmeyi etkinleştirir, X-Key: val
ekler
başlıklarına gönderebilir ve yanıttan önce 1 saniye bekler. "Bora" araması yapın
web-platform-tests.org adresinden daha fazla bilgi edinebilirsiniz.
WPT, henüz spesifikasyonlara dahil olmayan davranışları da test edebilir.
testi .tentative
olarak adlandırın. Blink dahili API'lerine (ör.
testRunner
, internals
) testlerinizi web_tests/wpt_internal
dilinde gerçekleştirin.
WPT'de yapılan değişiklikler otomatik olarak GitHub'a aktarılır. Göreceğiniz
bir bot tarafından yapılan yorumlar. Diğer tedarikçi firmalardaki GitHub değişiklikleri de
içe aktarılmalıdır. Yeni hatalar olduğunda otomatik olarak oluşturulan hataları almak için
içe aktarıldığında, WPT'deki bir alt dizinde bir OWNERS
dosyası oluşturun:
# TEAM: your-team@chromium.org
# COMPONENT: Blink>YourComponent
# WPT-NOTIFY: true
emails-here-will-be-cc@chromium.org
Ek Kaynaklar
- Testlerinizin diğer tarayıcılarda nasıl çalıştığını ve birlikte çalışabilme düzeyini öğrenmek istiyorsanız merak ediyor musunuz? wpt.fyi işlevini kullanın.
- API'ler, yönergeler, örnekler, ipuçları ve daha fazlasıyla ilgili daha fazla doküman mı arıyorsunuz? web-platform-tests.org adresini ziyaret edin.