Doğrulamalar
Beklenen davranışı ifade edin.
Doğrulamalar, CoddyKit'te ücretsiz bir Lua Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Lua Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Lua Academy kursu toplamda 4 dersten oluşur.
Doğrulamalar Ne İşe Yarar
Bir doğrulama, bir testin özüdür. Doğru olması gereken bir olguyu belirtir. Olgu doğruysa test devam eder; değilse busted, yararlı bir iletiyle başarısızlık kaydeder.
busted, global assert tablosu üzerinden erişilen luassert kütüphanesini kullanır.
assert.are.equal(4, 2 + 2)are.equal
assert.are.equal, eşitliği == işleciyle denetler. İlk bağımsız değişken beklenen değer, ikincisi ise gerçek değerdir.
Bu, sayılar, dizeler ve Boole değerleri için çalışır; ancak tablolar için içerikleri değil, aynı nesne olup olmadıklarını karşılaştırır.
assert.are.equal("hello", greet())
assert.are.equal(10, count)Tablolar için are.same
Tablo içeriklerini derinlemesine karşılaştırmak için assert.are.same kullanın. Bu ifade, iki tablonun eşit değerler içerip içermediğini özyinelemeli olarak denetler.
Veri yapıları için same, ilkel değerler veya özdeşlik denetimleri için equal kullanın.
assert.are.same({1, 2, 3}, split("1,2,3"))
assert.are.same({x = 1}, point)Doğruluk Değeri
assert.is_true ve assert.is_false tam olarak doğru veya yanlış mantıksal değerleri denetler. assert.is_truthy, boş değer ya da yanlış olmayan her şeyi kabul eder.
Özellikle bir mantıksal sonuç beklediğinizde katı biçimi seçin.
assert.is_true(user.active)
assert.is_truthy(find("x"))
assert.is_false(list:isEmpty())Boş Değer Denetimleri
assert.is_nil bir değerin boş değer olduğunu, assert.is_not_nil ise mevcut olduğunu doğrular. Bunlar arama sonuçlarını denetlerken sık kullanılır.
Bu ifadeler, equal ile boş değerle karşılaştırma yapmaktan daha açık bir amaç belirtir.
assert.is_nil(map["missing"])
assert.is_not_nil(map["found"])is_not ile Olumsuzlama
Çoğu doğrulama, is_not eklenerek veya are_not biçimi kullanılarak olumsuzlanabilir. Bu, bir şeyin farklı olması gerektiğini ifade eder.
Örneğin assert.are_not.equal, iki değer farklı olduğunda başarılı olur.
assert.are_not.equal(1, 2)
assert.is_not_nil(result)Hataları Sınama
Kodun hata oluşturduğunu doğrulamak için kodu bir işlevin içine sarıp assert.has_error öğesine aktarın. busted işlevi çağırır ve işlevin hata oluşturduğunu doğrular.
İkinci bağımsız değişken olarak beklenen bir dize aktararak hata iletisini de denetleyebilirsiniz.
assert.has_error(function()
withdraw(-5)
end, "amount must be positive")has_no.errors
Bunun tersi olan denetim assert.has_no.errors şeklindedir. Sarılan işlev hata oluşturmadan çalıştığında başarılı olur.
Bu, dönüş değerini doğrulamasanız bile başarılı bir yolun çökmeyeceğini doğrulamak için kullanışlıdır.
assert.has_no.errors(function()
parse("valid input")
end)Özel Başarısızlık İletileri
Başarısızlıkları açıklığa kavuşturmak için çoğu doğrulamaya bir ileti ekleyebilirsiniz. Beklentinin raporda açıklanması için iletiyi ek bir bağımsız değişken olarak aktarın.
Açık iletiler, anlaşılması zor bir başarısızlığı üzerinde işlem yapılabilir bir duruma dönüştürür.
assert.is_true(ok, "login should succeed")Değiştiricilerle Eşleştirme
luassert, daha kapsamlı denetimler için değiştiriciler ve eşleştiriciler sağlar. Örneğin assert.matches, bir dizeyi Lua kalıbıyla sınar.
Bu, tam eşitlik denetiminin değişken çıktılar için fazla katı olduğu durumlarda kullanışlıdır.
assert.matches("%d%d%d%d", get_year())
assert.matches("error", log_line, 1, true)Doğru Doğrulamayı Seçme
Açıklık için en özel doğrulamayı seçin. Tablolar için same, ilkel değerler için equal, başarısızlıklar için has_error, mantıksal değerler için de doğruluk denetimlerini kullanın.
Özel doğrulamalar daha iyi başarısızlık iletileri üretir ve bu da hata ayıklamayı hızlandırır.
describe("queue", function()
it("dequeues in order", function()
assert.are.same({"a", "b"}, q:drain())
end)
end)Hızlı Denetim
busted doğrulamalarını ne kadar anladığınızı sınayın.
Özet
luassert, busted'ın assert tablosunu güçlendirir. İlkel değerler için are.equal, derin tablo karşılaştırması için are.same, uygun durumlarda da doğruluk veya boş değer denetimlerini kullanın.
Hataları has_error ile, başarıları ise has_no.errors ile sınayın. is_not ile olumsuzlayın ve raporları daha açık hâle getirmek için iletiler ekleyin.
Sıkça Sorulan Sorular
“Doğrulamalar” dersi ücretsiz mi?
Evet — “Doğrulamalar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Lua Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Lua Academy kursu toplamda 4 dersten oluşur.
“Doğrulamalar” dersinde ne öğreneceğim?
Beklenen davranışı ifade edin. Lua Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Lua Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Lua Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Doğrulamalar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Lua Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Lua Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.