0Pricing
Learn Rust Coding · Ders

Birim Testleri

test özniteliği

Birim Testleri, CoddyKit'te ücretsiz bir Learn Rust Coding 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, Learn Rust Coding öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn Rust Coding kursu toplamda 4 dersten oluşur.

Rust'ta Test

Rust'ta yerleşik test desteği vardır; harici bir çerçeve gerekmez. Testler, #[test] ile açıklanmış ve cargo test tarafından çalıştırılan normal işlevlerdir.

İlk Testiniz

Bir test işlevi bağımsız değişken almaz ve doğrulamalar kullanır. Normal şekilde dönerse başarılı olur; paniğe neden olursa başarısız olur.

fn add(a: i32, b: i32) -> i32 {
    a + b
}

#[test]
fn it_adds() {
    assert_eq!(add(2, 3), 5);
}

fn main() {
    println!("{}", add(2, 3));
}

Doğrulama Makroları

Standart doğrulamalar şunlardır:

  • assert!(cond) — koşul yanlışsa başarısız olur
  • assert_eq!(a, b) — eşit değilse başarısız olur
  • assert_ne!(a, b) — eşitse başarısız olur
fn main() {
    let x = 4;
    assert!(x > 0);
    assert_eq!(x, 4);
    assert_ne!(x, 5);
    println!("All assertions passed");
}

tests Modülü

Geleneksel olarak birim testleri, yalnızca test sırasında derlenmeleri için #[cfg(test)] ile açıklanmış bir modülde bulunur.

fn square(n: i32) -> i32 {
    n * n
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn squares_correctly() {
        assert_eq!(square(5), 25);
    }
}

fn main() {
    println!("{}", square(5));
}

use super::*

Test modülü iç içe olduğundan use super::*, üst modülün öğelerini (test etmek istediğiniz işlevleri) kapsama alır.

Testleri Çalıştırma

cargo test her testi derler ve çalıştırır. Kaç testin başarılı olduğunu, başarısız olduğunu veya yoksayıldığını bildirir.

cargo test

Panileri Test Etme

Bir işlevin belirli koşullar altında paniğe neden olduğunu doğrulamak için #[should_panic] kullanın.

fn checked_div(a: i32, b: i32) -> i32 {
    if b == 0 {
        panic!("division by zero");
    }
    a / b
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    #[should_panic(expected = "division by zero")]
    fn panics_on_zero() {
        checked_div(10, 0);
    }
}

fn main() {}

Result Döndüren Testler

Bir test Result döndürebilir; böylece ? işleçini kullanabilirsiniz. Err döndürmek testi başarısız kılar.

fn parse(s: &str) -> Result<i32, std::num::ParseIntError> {
    s.parse::<i32>()
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn parses_number() -> Result<(), std::num::ParseIntError> {
        let n = parse("42")?;
        assert_eq!(n, 42);
        Ok(())
    }
}

fn main() {}

Testleri Yoksayma

Yavaş veya ortama özgü testleri #[ignore] ile işaretleyin. Bunları açıkça cargo test -- --ignored ile çalıştırın.

#[test]
#[ignore]
fn expensive_test() {
    // long-running work
}

fn main() {}

Yararlı Test Seçenekleri

Testleri çalıştırırken kullanabileceğiniz yararlı seçenekler:

  • cargo test name — adla eşleşen testleri çalıştırır
  • cargo test -- --nocapture — println çıktısını gösterir
  • cargo test -- --test-threads=1 — testleri seri olarak çalıştırır

Özel İşlevleri Test Etme

Test modülü aynı dosyanın içinde iç içe olduğundan özel işlevlere erişebilir; tümleştirme testleri bunu yapamaz. Bu, birim testlerinin önemli bir avantajıdır.

fn internal(n: i32) -> i32 {
    n + 1
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn tests_private() {
        assert_eq!(internal(4), 5);
    }
}

fn main() {
    println!("{}", internal(4));
}

Hızlı Denetim

Bir işlevi Cargo'nun çalıştırması gereken bir test olarak hangi öznitelik işaretler?

Özet

Rust'ın yerleşik test desteğini öğrendiniz:

  • #[test], test işlevlerini işaretler
  • Doğrulamalar: assert!, assert_eq!, assert_ne!
  • Testler, use super::* içeren bir #[cfg(test)] modülünde bulunur
  • #[should_panic] ve Result döndüren testler hataları ele alır
  • cargo test her şeyi çalıştırır

Sıkça Sorulan Sorular

“Birim Testleri” dersi ücretsiz mi?

Evet — “Birim Testleri” 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 Learn Rust Coding kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn Rust Coding kursu toplamda 4 dersten oluşur.

“Birim Testleri” dersinde ne öğreneceğim?

test özniteliği Learn Rust Coding 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.

Learn Rust Coding öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn Rust Coding, 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.

“Birim Testleri” 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 Learn Rust Coding dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn Rust Coding 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

  1. Birim Testleri
  2. Tümleştirme Testleri
  3. Belge Açıklamaları
  4. Belge Testleri
← Learn Rust Coding Sayfasına Dön