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 olurassert_eq!(a, b)— eşit değilse başarısız olurassert_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 testPanileri 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ırcargo test -- --nocapture— println çıktısını gösterircargo 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]veResultdöndüren testler hataları ele alırcargo testher ş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
- Birim Testleri
- Tümleştirme Testleri
- Belge Açıklamaları
- Belge Testleri