Python FDK - İşlevinizi test edin!

Başlangıçta, Fn platformu resmi olarak desteklenen birkaç FDK sundu. Zaman geçtikçe, daha fazla FDK tanıtıldı ve Fn CLI tarafından desteklendi.

Bir FDK'nın amacı oldukça basittir - Fn'den işleve protokol iletişimini gizlemek ve kullanımı basit bir programlama arayüzü sağlamak. Amaç, bir geliştiricinin sunucusuz işlevler yazmak için hangi programlama dilini seçtiği önemli değil, UX'i aynı yapmaktır.

Test yapmak

Fn CLI (bkz. fn test), Kara kutu testini yürütmek için yapılandırılabilir bir arabirim oluşturarak sunucusuz işlev testinin ilk engelini sağlar . Şuna bir göz atalım test.json:

{
    "tests": [
        {
            "input": {
                "body": {
                    "name": "Johnny"
                }
            },
            "output": {
                "body": {
                    "message": "Hello Johnny"
                }
            }
        },
        {
            "input": {
                "body": ""
            },
            "output": {
                "body": {
                    "message": "Hello World"
                }
            }
        }
    ]
}

Bu tür testler gerçekten neyle ilgili? fn testbu testleri çalıştırmak için iki mod sağlar: yerel ve uzak. Temel fark, yerel bir mod için Docker'a sahip olmanız ve çalışır durumda olmanızdır. Prosedür şöyledir:

  • yapmak docker build
  • yapmak docker run
  • protokol çerçeveli istekleri bir işleve gönder
  • bir işlevi yıkmak

fn testDocker'ı içerdiği gerçeğini dahil etmekten hoşlanmamamızın birkaç nedeni var , yani bir geliştiricinin bir imaj oluşturması ve çok basit bir kara kutu testi için çalıştırması gerekiyor.

FDK'da birim testi

Protokol talebi / yanıt işleme, her FDK'nın görev açısından kritik bir özelliğidir, bu nedenle resmi olarak desteklenen FDK'ler iyi test edilir ve% 100 yukarı akış Fn özelliği ile uyumludur.

Bazı küçük farklılıklara rağmen, FDK'lar özünde aynıdır. Bununla birlikte, bazı FDK'lar, FDK-Node'daki vaatler ve FDK-Python'da asenkron / bekleme gibi programlama diline özgü özellikler sağlar. Resmi olarak desteklenen bir FDK'nın temel özelliklerinden biri, giriş için düşünüldüğünde, birim testidir. Şu anda yalnızca Java FDK, birim testlerini (JUnit) en verimli şekilde yazmak için gerekli API'yi sağlar. Yakında ek FDK'larla aynı özellik kapsamını sağlamayı umuyoruz.

V0.0.33'ten itibaren Python FDK, birim testlerini çalıştırmak için kapsamlı bir çerçeve sağlayacaktır. Python FDK sunucusuz işlevi için test paketine bir göz atalım:

Fark etmiş olabileceğiniz gibi, fikir, belirli bir uygulamayı kapsayan yerel birim testlerinin yanı sıra bir işlev standart şablonu sağlamaktır (işlevler uygulaması aynı kaldığı sürece testler sabit kalacaktır). Test paketlerine bakarsanız, aşağıdaki iddia yöntemlerini görürsünüz:

assertInHeaders - allows asserting header(s) presence in response
assertInTime - allows asserting the time necessary for a function to finish
assertNotInTime - allows asserting the time within a function was not able to finish
assertResponseConsistent - allows to check the response data, if the data corresponds to assertion expectations

Testler nasıl yapılır?

Yerel test araçlarına aşina iseniz - sadece PyTest kullanın . Değilse endişelenmeyin, tek ihtiyacınız olan pytestaracı kurmak ve aşağıdaki komutu çalıştırmaktır:

pytest -v -s --tb=long func.py

Bu komutla aşağıdaki çıktıyı elde edersiniz:

Bazı ek eklentilerle pytesttest kapsamına girebilirsiniz. Kapsam eklentisini yüklemek için aşağıdaki komutu kullanın:

pip install pytest-cov

pytest -v -s --tb=long --cov=func func.py

Bu gönderinin genel bir takibi olarak aşağıdaki bağlantıları yararlı bulabilirsiniz:

  • Mevcut FDK'lara bir göz atın .
  • Fn YouTube kanalına abone olun .
  • Fn platformu hakkında daha fazla bilgi edinmek için lütfen proje ana sayfasını ziyaret edin .

Suggested posts

Langchain kullanarak ChatGPT eklentilerini ücretsiz çalıştırma

Langchain kullanarak ChatGPT eklentilerini ücretsiz çalıştırma

Tarayıcı, Kod Tercüman vb. tüm yeni güçlü ChatGPT eklentilerini duymuş olmalısınız. Ancak bir sorun var, eklentilere erişim bir bekleme listesiyle sınırlıdır ve bu nedenle birçoğunun buna erişimi yoktur.

En çok kullandığım kodlama kaynaklarım

En çok kullandığım kodlama kaynaklarım

Bu hafta, günlük e-posta listesinin bir üyesinden bir e-posta aldım. Bilmek istediler: Günlük, haftalık ve aylık olarak hangi kaynakları ziyaret ediyorsunuz? Harika soru! İş akışım ve kullandığım en önemli kaynaklar hakkında bazı bilgileri paylaşmaya çalışmaktan mutluluk duyuyorum.

Related posts

zamirler süper korkutucu

Çoğu zaman olduğu gibi birdenbire gözüme çarpıyor Her şey yeniden yarı yolda <Hayır, Pasifik'te kesip attığınız değil, karnavalda olan> Her manşet yüksek sesle… ..

Güvenli Bir Çalışma Ortamı Oluşturma

Güvenli Bir Çalışma Ortamı Oluşturma

"Ben tehlikedeyken beni koruyacak. Beni çadırına saklayacak.

Tehlikeli Konuşmalar

Tehlikeli Konuşmalar

Bu gezegende gelişmeye devam etmek istiyorsak, tehlikeli konuşmalar yapmak zorunda kalacağız. Yaptıklarımıza, yaptıklarımıza ve şu anda yapmaya devam etmeye hazır olduğumuz (veya yapmayı planladığımız) şeylere meydan okuyanlar.

Neden bazı serbest çalışanlar hayatlarını taklit ediyorlar?

Neden bazı serbest çalışanlar hayatlarını taklit ediyorlar?

Geçenlerde dünyanın en büyük profesyonel sosyal ağı olan Linkedin'deydim ve dikkatimi çeken, takip ettiğim serbest tasarımcıların gönderilerini buldum. Hepsi uçaklardan, dizüstü bilgisayarlarıyla sahilden, yüzme havuzlarından ve muhteşem manzaralı ofislerden fotoğraflar yayınladılar.