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.