Kotlin
@BeforeEach
@BeforeEach ve @AfterEach ile fixture öğrenirsin.
@BeforeEach / @AfterEach
@BeforeEach annotasyonu, her test metodundan önce çalışan bir metodu işaretler. @AfterEach ise her testten sonra çalışır. Bunlar, testlerin ortak kurulumunu (setup) ve yıkımını (teardown) yapmak için kullanılır; böylece her test temiz bir başlangıç yapar.
class CalculatorTest {
lateinit var c: Calculator
@BeforeEach
fun setup() { c = Calculator() }
@AfterEach
fun cleanup() { /* temizle */ }
}
Burada her testten önce yeni bir Calculator örneği oluşturulur; testten sonra temizlik yapılır. Bu, testlerin birbirini etkilemesini engeller. lateinit var, kurulumda atanan değişkenler için kullanışlıdır; ilk atama olmadan erişilirse istisra fırlatır.
Kurulum ve yıkım deseni
Ortak kurulum, her testin aynı başlangıç durumuna sahip olmasını sağlar. Örneğin bir veri tabanı bağlantısı, dosya veya liste her testten önce hazırlanır; testten sonra kapatılır veya temizlenir. Bu, testlerin bağımsız ve tekrar edilebilir olmasını sağlar.
@BeforeEach
fun setup() {
counter = 0
}
@Test
fun test1() {
counter++
assertEquals(1, counter)
}
Burada counter her testten önce sıfırlanır; böylece test1 ve test2 birbirini etkilemez. Kurulum metodu genellikle setup, yıkım metodu cleanup veya teardown olarak adlandırılır. Ağır kaynaklar (veri tabanı, ağ) için kurulum maliyetini düşünmek önemlidir.
Uygulama beforeEach deseni uygula
class Calculator tanımla; içinde var total: Int = 0 ve fun add(n: Int) { total += n } olsun. Ardından fun beforeEach(c: Calculator) yardımcı fonksiyonu tanımla; gövdesi c.total = 0 yapsın. main içinde val c = Calculator() oluştur; beforeEach(c); c.add(5); check(c.total == 5) çağrısını yap; beforeEach(c); c.add(3); check(c.total == 3) çağrısını yap; println("all passed") yazdır.
Örnek çözümü göster
fun beforeEach(c: Calculator) { c.total = 0 }
fun main() {
val c = Calculator()
beforeEach(c)
c.add(5)
check(c.total == 5)
beforeEach(c)
c.add(3)
check(c.total == 3)
println("all passed")
}
Kendini test et
-
@BeforeEach ne zaman çalışır?
- Tüm testlerden önce bir kez
- Tüm testlerden sonra bir kez
- Her testten sonra
- Her testten önce
Cevabı göster
Her testten önce — @BeforeEach her test metodundan önce çalışır.
-
Kurulum/yıkım kavramlarını eşle
- @BeforeEach
- Her testten önce
- @AfterEach
- Her testten sonra
- setup()
- Kurulum metodu
- cleanup()
- Yıkım metodu
-
Kurulum annotasyonu
____
fun setup() { c = Calculator() }
Cevabı göster
@BeforeEach
fun setup() { c = Calculator() }
Sıradaki ders: MockK