ScalaTest Biçimleri
FlatSpec ve FunSuite
ScalaTest Biçimleri, CoddyKit'te ücretsiz bir Scala for Backend Engineering & Functional Programming dersidir. Bu, 4 dersinin 1. 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.
ScalaTest Nedir?
ScalaTest, Scala için en yaygın kullanılan sınama çatısıdır. Ayırt edici özelliği, ekiplerin geçmişlerine uygun söz dizimini seçmesine olanak tanıyan birden çok sınama biçimi sunmasıdır.
Bağımlılığı Ekleme
ScalaTest'i build.sbt içinde bir sınama bağımlılığı olarak eklersiniz. % Test kapsamı, bunun üretim çıktınıza dahil edilmemesini sağlar.
libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.18" % TestNeden Birden Çok Biçim Var?
Farklı ekipler farklı kuralları tercih eder: xUnit deneyimi olanlar FunSuite'i, davranış odaklı ekipler ise FlatSpec veya WordSpec'i sever. ScalaTest bunların tümünü tek bir altyapıda destekler; böylece tutarlılık için proje başına bir biçim seçebilirsiniz.
AnyFunSuite
AnyFunSuite, JUnit kullanıcılarının aşina olduğu test("name") { ... } biçimini kullanır. Her test bloğu bir sınama durumudur.
import org.scalatest.funsuite.AnyFunSuite
class MathSuite extends AnyFunSuite {
test("addition works") {
assert(1 + 1 == 2)
}
test("multiplication works") {
assert(2 * 3 == 6)
}
}AnyFlatSpec
AnyFlatSpec, bir belirtim gibi okunur: "A Stack" should "pop values" in { ... }. Konu ve davranış, okunabilir bir cümle oluşturur.
import org.scalatest.flatspec.AnyFlatSpec
class CalculatorSpec extends AnyFlatSpec {
"A Calculator" should "add two numbers" in {
assert(2 + 3 == 5)
}
it should "subtract two numbers" in {
assert(5 - 2 == 3)
}
}should ve must
FlatSpec içinde fiil olarak should, must veya can kullanabilirsiniz. Anlamları birbirinin aynıdır; ekipler tutarlılık için birini seçer.
import org.scalatest.flatspec.AnyFlatSpec
class ParserSpec extends AnyFlatSpec {
"A Parser" must "handle empty input" in {
assert("".isEmpty)
}
}it ve they
Bir konuyu bir kez adlandırdıktan sonra, aynı konu için adını tekrarlamadan daha fazla davranış eklemek üzere it (veya they) kullanınız.
import org.scalatest.flatspec.AnyFlatSpec
class ListSpec extends AnyFlatSpec {
"A List" should "report its size" in {
assert(List(1, 2, 3).size == 3)
}
it should "reverse correctly" in {
assert(List(1, 2).reverse == List(2, 1))
}
}AnyFunSpec
AnyFunSpec, sınamaları iç içe describe blokları ve it tümceleriyle gruplandırarak hiyerarşik ve okunabilir bir çıktı sağlar.
import org.scalatest.funspec.AnyFunSpec
class SetSpec extends AnyFunSpec {
describe("A Set") {
describe("when empty") {
it("has size 0") {
assert(Set.empty[Int].size == 0)
}
}
}
}Bekleyen ve Yoksayılan Sınamalar
Tamamlanmamış sınamaları pending olarak işaretleyebilir veya test/in yerine ignore kullanarak bir sınamayı atlayabilirsiniz. Her ikisi de yapılacak işi belirtirken sınama paketinin başarılı görünmesini sağlar.
import org.scalatest.funsuite.AnyFunSuite
class WipSuite extends AnyFunSuite {
test("feature not done") {
pending
}
ignore("flaky test") {
assert(false)
}
}Bir Biçim Seçme
Öneriler:
FunSuite— en az kod gerektiren, xUnit benzeri yapı; birim sınamaları için idealdir.FlatSpec— okunabilir davranış cümleleri.FunSpec/WordSpec— iç içe, belirtim tarzı gruplandırma.
Kod tabanınız için birini seçiniz ve tutarlı kalınız.
Sınamaları Çalıştırma
Tüm sınamaları sbt test ile veya tek bir paketi sbt "testOnly *CalculatorSpec" ile çalıştırınız. ScalaTest her sınamanın adını ve sonucunu raporlar.
sbt test
sbt "testOnly *CalculatorSpec"Hızlı Kontrol
ScalaTest biçimleri hakkındaki bilginizi sınayınız.
Özet
ScalaTest biçimlerini öğrendiniz:
- ScalaTest'i
% Testkapsamıyla ekleyiniz. AnyFunSuite:test("...") { }blokları.AnyFlatSpec: konushoulddavranışin { }.AnyFunSpec: iç içedescribe/it.- Proje başına bir biçim seçiniz;
sbt testile çalıştırınız.
Sıkça Sorulan Sorular
“ScalaTest Biçimleri” dersi ücretsiz mi?
Evet — “ScalaTest Biçimleri” 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.
“ScalaTest Biçimleri” dersinde ne öğreneceğim?
FlatSpec ve FunSuite 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 1. dersidir.
“ScalaTest Biçimleri” 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.
Bu kursun tüm dersleri
- ScalaTest Biçimleri
- Eşleştiriciler
- Özellik Tabanlı Test
- Sahte Nesneler ve Test Düzenekleri