Google Etiket Yöneticisi özel şablonlarına yönelik birim testleri, şablonlarınızın işlevlerini doğrulamanıza yardımcı olur. Her şablon için bir test grubu oluşturabilirsiniz Bu sayede, etiketinizi dağıtmanıza gerek kalmadan çalıştırılabilir. Böylece, ve geliştirme sırasında şablonunuzun davranışını sürekli olarak test edebilir. Her test örnek giriş değerleri sağlama, işlev çağrıları oluşturma ve kod davranışı onaylama.
Sınırlamalar
- Birim testleri doğrulama kurallarını kontrol etmez, ancak Kodu Çalıştır düğmesini kullanarak doğrulamayı manuel olarak kontrol edebilirsiniz.
- Birim testlerindeki sahte API'lerde izin kontrolleri gerçekleşmez.
Bu kılavuzda, özel şablonunuz için birim testlerini nasıl yazacağınız açıklanmaktadır. Bu örnek, bir giriş dizesini alıp şu değeri döndüren bir değişken şablonu oluşturur: o dizenin büyük harfli sürümünü gösterir.
Yeni bir değişken şablonu oluşturun. Sol taraftaki gezinme panelinde Şablonlar'ı tıklayın ve Değişken Şablonları bölümünün altında Yeni'yi tıklayın.
Fields'ı (Alanlar) tıklayın.
Alan Ekle'yi tıklayın ve Metin girişi'ni seçin. Alanı
text1
olarak adlandırın ve görünen adı "Metin 1" olarak ayarlayın.Kod sekmesinde, varsayılan kodu korumalı alana alınan bu JavaScript ile değiştirin:
let input = data.text1; return input.toUpperCase();
Test sekmesini açmak için Testler'i tıklayın.
Test Ekle'yi tıklayın ve testin adını "Adsız test 1" yerine "İşleyici dizeleri" olarak değiştirin.
Testin korumalı alana alınmış JavaScript düzenleyicisini açmak için genişlet simgesini (expand_more) tıklayın. Kodu, korumalı alana alınan şu JavaScript ile değiştirin:
// Call runCode to run the template's code with a lowercase string let variableResult = runCode({text1: 'this is a test'}); // Validate that the result of runCode is an uppercase string. assertThat(variableResult).isEqualTo('THIS IS A TEST');
Bu test,
'this is a test'
dizesini değişkene geçirir ve değişkenin, beklenen'THIS IS A TEST'
değerini döndürdüğünü doğrular.runCode
API, Kod sekmesinde şablon kodunu çalıştırmak için kullanılır.runCode
bağımsız değişkeni, global veri olarak kullanılan bir nesnedir.assertThat
API, bir öznenin değeri hakkında akıcı bir şekilde onay vermek için kullanılabilecek bir nesne döndürür.Testi çalıştırmak için ▶ Testleri Çalıştır'ı tıklayın. Testin sonucu Console'da gösterilir.
▶ Testleri Çalıştır düğmesi, şablondaki tüm etkin testleri gösterilen sırayla çalıştırır. Sıralamayı değiştirmek için sürükleme simgesini (⠿) kullanın. Bir test, test adının solundaki daire tıklanarak geçici olarak etkinleştirilebilir veya devre dışı bırakılabilir. Tek bir test çalıştırmak için, fareyi testin üzerine getirdiğinizde görünen ▶ düğmesini tıklayın.
Konsolda, çalıştırılan toplam test sayısı ve varsa başarısız olan testlerin sayısı yazdırılır. Bu durumda, yalnızca bir test çalıştırılmıştır ve bu testin başarılı olması beklenir.
İkinci bir test eklemek için tekrar Add Test'i (Test Ekle) tıklayın. "Adsız test 2" olan test adını "Herkese açık kullanıcı adları undefined" olarak değiştirin.
Testi tıklayarak genişletin ve korumalı alana alınan JavaScript düzenleyiciyi açın. Düzenleyiciye, korumalı alana alınmış JavaScript'i girin:
let variableResult = runCode({}); assertThat(variableResult).isEqualTo(undefined);
Tüm testleri aynı anda çalıştırmak için ▶ Testleri Çalıştır'ı tıklayın. Testin sonucu konsolda gösterilir.
Herkese açık kullanıcı adları tanımlanmamış testi başarısız olacaktır. Tebrikler, bir hata buldunuz!
Geri dönüp şablonun korumalı alana alınmış JavaScript kodunu düzenlemek için Kod'u tıklayın. Korumalı alana alınmış JavaScript'i aşağıdaki gibi güncelleyin:
const getType = require('getType'); let input = data.text1; if (getType(input) !== 'string') { return input; } return input.toUpperCase();
Güncellenen kod,
input
değişkenini kullanmadan önce doğrulamaya yönelik en iyi uygulamayı izler.Test durumları listesine dönmek için Testler'i tıklayın.
Tüm test durumlarını tekrar çalıştırmak için ▶ Testleri Çalıştır'ı tıklayın. Bu kez Herkese açık kullanıcı adları testi başarılı olacaktır.
Kaydet'i tıklayın ve Şablon Düzenleyici'yi kapatın.