Summary

Bu yapay zeka birim testi oluşturucu, fonksiyon adı, parametreler ve davranış bilgisinden hazır-düzenleme testi iskele yapısı oluşturur: Jest, Vitest, pytest veya Go seçin ve Arrange-Act-Assert desenini framework'ün gerçek söz dizimine uygular. Ayrıca edge case'leri önerir — null giriş, boş giriş, sınır değerleri ve hatalı türler — eşdeğerlik bölümleme ve sınır değeri analizi tekniklerinden çıkar, böylece hangi girdilerin gerçekten test edilmesi gerektiğini hatırlamanız gerekmez. Bir yapay zeka modelini çağırmaz veya kodunuzu çalıştırmaz: ilişkiler TODO olarak işaretlenir çünkü yalnız siz gerçek beklenen değerleri bilirsiniz. Ücretsiz, kayıt gerekmez, tamamen tarayıcınızda çalışır.

Jest, Pytest ve Go için Yapay Zeka Birim Testi Oluşturucu

Fonksiyonunuzu açıklayın, bir dil ve framework seçin, Arrange-Act-Assert test iskele yapısı ve sevkten önce kapsanması gereken edge case'lerin kontrol listesini alın.

Birim testi iskele yapısı oluşturucu

Fonksiyonunuzun adını, parametrelerini ve davranışını girin. İskele yapısı yazarken seçtiğiniz framework'ün söz diziminde güncellenir.

Kapsanması gereken edge case'ler
Oluşturulan test iskele yapısı
Kapsanan test durumları

    Bu, Arrange-Act-Assert desenini kullanarak söz dizimi açısından doğru bir iskele yapısı oluşturur. Kodunuzu çalıştırmaz veya iş mantığını icat etmez: commit etmeden önce gerçek değerleri ve ilişkileri doldurun.

    Nasıl çalışır

    Bu oluşturucu testlerinizi nasıl oluşturur

    Arrange-Act-Assert yapısı

    Her oluşturulan test AAA desenini takip eder: girdilerinizi hazırlayın, fonksiyonu çağırın, sonra sonucu kontrol edin. Bu, Jest, Vitest ve pytest kod tabanlarında kullanılan yapıdır, dolayısıyla çıktı mevcut bir test paketine yeniden çalışılmadan bağlanır.

    Framework'e uygun söz dizimi

    Jest, Vitest, pytest veya Go'nun testing paketini seçin ve iskele yapısı o framework'ün gerçek söz dizimine uyar: describe/it/expect blokları, pytest.raises ile def test_ fonksiyonları veya (değer, hata) döndürüsü üzerine kurulu t.Run alt testleri.

    Gerçek test tasarımından edge case'ler

    Kontrol listesi — null giriş, boş giriş, sınır değerleri, yanlış türler — eşdeğerlik bölümleme ve sınır değeri analizi tekniklerinden gelir; bunlar test yapanların hangi girdilerin gerçekten test edilmeye değer olduğuna karar vermek için kullandığı buluşsallardır.

    Örnek

    Oluşturucu ne üretir

    calculateTotal gibi bir fonksiyon adı yazın, parametrelerini listeleyin, hatalı girdide hata attığını işaretleyin ve birkaç edge case'i seçin. Sağdaki panel, tam bir describe bloğu veya framework'ünüzün gerçek söz dizimine eşleşen bir pytest/Go test dosyası ile kendini yeniden yazar. Her test Arrange, Act ve Assert bölümlerini ayrı, açıklamalı adımlar olarak tutar, böylece bir inceleyici, yoğun bir kurulum kodu bloğu ayrıştırmak yerine her testin aslında ne kontrol ettiğini bir bakışta söyleyebilir. İlişki satırları amaçlı olarak bir TODO yorumu ile işaretlenir: iskele yapısı fonksiyonunuzun ne döndürmesi gerektiğini tahmin etmez, yalnız siz dolduracağınız değer etrafında şekli oluşturur.

    Geçen bir test paketini gösteren bulanık bir kod editörü ile dizüstü bilgisayar ekranı

    Sık sorulan sorular

    Bu ücretsiz mi?
    Evet. Oluşturucu tamamen tarayıcınızda çalışır: kayıt yok, API anahtarı yok ve kullanım sınırı yok. Yazdığınız hiçbir şey bir sunucuya gönderilmez, anonim bir sayfa görüntülemesi işareti hariç.
    Bu testleri yazmak için gerçek bir yapay zeka modeli çağırır mı?
    Hayır. Bir kural tabanlı iskele yapısı oluşturucudur, LLM değildir. Arrange-Act-Assert desenini ve framework'ünüzün gerçek söz dizimini sağladığınız fonksiyon adı, parametreler ve edge case'lere uygular. Bu, çıktıyı öngörülebilir ve hızlı tutar, ancak iş mantığınızı anlamaz.
    Oluşturulan testler ne kadar doğru?
    Yapı ve söz dizimi seçtiğiniz framework için doğrudur. İlişkiler TODO olarak işaretlenen yer tutuculardır: fonksiyonunuz ne döndürmesi gerektiğini yalnız siz bildiğinden, tam beklenen değerleri yine de doldurmak gerekir.
    Hangi diller ve framework'ler destekleniyor?
    Jest veya Vitest ile JavaScript, Vitest ile TypeScript, pytest ile Python ve standart testing paketi ile Go. Her çıktı o framework'ün gerçek kurallarını eşleştirir, işlev başarısız olabileceğinde (değer, hata) döndürüşü için Go dahildir.
    Null veya sınır durumu bazen neden tamamlanmamış görünüyor?
    Bu durumlar, tahmin edilen ilişkiler yerine, bilinçli olarak iskele yapıları olarak bırakılmış. Null giriş hata atmalı mı, varsayılan döndürmeli mi, yoksa başka bir şey yapmalı mı, bu aracın değil, fonksiyonunuza bağlıdır.
    Bunu ilkel olmayan, nesneler alan bir fonksiyon için kullanabilir miyim?
    Evet. Parametre adlarını yazın ve oluşturucu doğru yapıyı üretir. Yine de gerçek türlerinize eşleşen 'örnek' veya 2 gibi yer tutucu değerleri değiştirmek gerekir.
    Bu testleri kendim yazmayı değiştiriyor mu?
    Hayır. Bunu bir test dosyası yazmanın ilk on dakikası olarak düşünün: adlandırma, yapı ve kontrol edilmeye değer edge case'ler. İlişkiler ve beklenen davranış hakkında yargı çağrıları hâlâ sizindir.
    Bir sevkten önce neden birim testleriyle uğraşmalıyım?
    Kötü bir edge case'i yerel olarak yakalan bir birim testi, aynı hatasının canary release'e veya yüzde tabanlı sevke ulaştığından çok daha ucuzdur. Tek başında her başarısızlık modunu yakalamaz, ancak yalnızca üretimde bulunabilecek şeyler listesini küçültür.

    Sevkten önce hataları yakalan testleri gönderin

    Daha iyi birim testleri ve SLO-gated sevkler ile auto-rollback'i birleştirin, böylece testlerinizi aşan şeyler hâlâ üretimde güvenle başarısız olur.