Eşleştiriciler
Anlatımı güçlü doğrulamalar
Eşleştiriciler, CoddyKit'te ücretsiz bir Scala for Backend Engineering & Functional Programming dersidir. Bu, 4 dersinin 2. 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, Scala for Backend Engineering & Functional Programming öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Scala for Backend Engineering & Functional Programming kursu toplamda 4 dersten oluşur.
Eşleştiriciler Nedir?
ScalaTest eşleştiricileri, doğrulamalar için ifade gücü yüksek ve doğal dile benzeyen bir söz dizimi sağlar. assert(x == 3) yerine x shouldBe 3 yazarak okunabilir sınamalar ve anlaşılır hata iletileri elde edersiniz.
Eşleştiricileri Karışıma Dahil Etme
DSL'yi etkinleştirmek için Matchers özelliğini belirtiminize karışıma dahil ediniz. Bu özellik tüm sınama biçimleriyle birlikte kullanılabilir.
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
class DemoSpec extends AnyFlatSpec with Matchers {
"A value" should "equal itself" in {
val x = 3
x shouldBe 3
}
}Eşitlik Eşleştiricileri
Eşitliği shouldBe veya should equal ile denetleyiniz. Her ikisi de == ile karşılaştırma yapar, ancak doğal biçimde okunur.
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
class EqSpec extends AnyFlatSpec with Matchers {
"sum" should "be correct" in {
(2 + 2) shouldBe 4
(2 + 2) should equal (4)
}
}Karşılaştırma Eşleştiricileri
Sayısal karşılaştırmalar düzyazı gibi okunur: should be >, should be <= ve kayan nokta toleransı için aralıklar be within ile belirtilir.
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
class CmpSpec extends AnyFlatSpec with Matchers {
"a number" should "compare" in {
7 should be > 3
7 should be <= 7
2.0 shouldBe 2.0 +- 0.01
}
}Dize Eşleştiricileri
Karakter dizileri için eşleştiriciler arasında startWith, endWith, include ve fullyMatch regex ile düzenli ifade kullanımı bulunur.
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
class StrSpec extends AnyFlatSpec with Matchers {
"a string" should "match parts" in {
"hello world" should startWith ("hello")
"hello world" should include ("o w")
"hello world" should endWith ("world")
}
}Koleksiyon Eşleştiricileri
Koleksiyonları akıcı bir biçimde inceleyiniz: have size, contain, contain allOf ve boşluğu denetlemek için shouldBe empty.
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
class ColSpec extends AnyFlatSpec with Matchers {
"a list" should "have expected contents" in {
List(1, 2, 3) should have size 3
List(1, 2, 3) should contain (2)
List.empty[Int] shouldBe empty
}
}Boolean ve Option Eşleştiricileri
Doğruluk değerlerini ve Option içeriklerini doğrudan eşleştiriniz: shouldBe true, shouldBe defined ve içteki değer için should contain.
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
class OptSpec extends AnyFlatSpec with Matchers {
"an option" should "be inspected" in {
Some(5) shouldBe defined
Some(5) should contain (5)
None shouldBe empty
}
}Eşleştiricileri Birleştirme
Bileşik doğrulamalar için beklentileri and / or ile birleştiriniz.
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
class CombineSpec extends AnyFlatSpec with Matchers {
"a number" should "satisfy both" in {
7 should (be > 0 and be < 10)
}
}Özel Durumları Sınama
Kodun beklendiği gibi başarısız olduğunu doğrulamak için an [Exception] should be thrownBy { ... } veya assertThrows kullanınız.
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
class ExSpec extends AnyFlatSpec with Matchers {
"dividing by zero" should "throw" in {
an [ArithmeticException] should be thrownBy (1 / 0)
}
}Eşleştiriciler Neden Yararlıdır?
Eşleştiriciler, okunabilirliğin yanı sıra açıklayıcı başarısızlık iletileri üretir. Başarısız bir List(1,2) should have size 3 ifadesi, yalnızca Boolean değerinin yanlış olduğunu söyleyen yalın bir assert ifadesinin aksine beklenen ve gerçek boyutu bildirir.
shouldBe ve should equal Karşılaştırması
Bunlar neredeyse aynıdır; shouldBe daha kısa yazılır ve basit eşitliklerde biraz daha temiz iletiler verirken should equal, gelişmiş karşılaştırmalar için özel Equality örneklerini destekler.
Hızlı Kontrol
Eşleştiriciler hakkındaki bilginizi sınayınız.
Özet
ScalaTest eşleştiricilerini öğrendiniz:
- DSL için
Matchers'ı karışıma dahil ediniz. - Eşitlik:
shouldBe,should equal; karşılaştırmalar:be >,+- tolerance. - Dizeler:
startWith,include; koleksiyonlar:have size,contain. - Özel durumlar:
should be thrownBy. - Eşleştiriciler açık ve açıklayıcı başarısızlıklar sağlar.
Sıkça Sorulan Sorular
“Eşleştiriciler” dersi ücretsiz mi?
Evet — “Eşleştiriciler” 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 Scala for Backend Engineering & Functional Programming kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Scala for Backend Engineering & Functional Programming kursu toplamda 4 dersten oluşur.
“Eşleştiriciler” dersinde ne öğreneceğim?
Anlatımı güçlü doğrulamalar Scala for Backend Engineering & Functional Programming 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.
Scala for Backend Engineering & Functional Programming öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Scala for Backend Engineering & Functional Programming, 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 2. dersidir.
“Eşleştiriciler” 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 Scala for Backend Engineering & Functional Programming dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Scala for Backend Engineering & Functional Programming 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.