Swifty mocky kullanarak alaycı iOS birim testi
Swift, salt okunur yansımayı destekleyen güvenli olacak şekilde tasarlandı. Bu nedenle, çalışma zamanında programınızı değiştirmenin bir yolu yoktur. Genel olarak, iyidir, kod beklendiği gibi yürütülür ve diğer bileşenler onu değiştiremez. Ancak konumuza geri dönersek, tüm alaycı çerçeveler çalışma zamanında sınıfları, türleri ve nesneleri değiştirebilmek için yansıma üzerine kuruludur.
Bu dilin test edilebilir kod yazmak için süper kahramanlarına ihtiyacı var ve biz onları iyi tanıyoruz - protokoller ve uzantılar! Hangi uygulama olursa olsun - sınıf, numaralandırma veya yapı - protokollerin amacı, soyutlamaları tanımlamak ve türlere, borçlu olmadığımız bile olsa, yeni işlevler eklemektir.
Alay etmek için ne yapabiliriz?
Eksiksiz sahte uygulama oluşturmak için meta programlamayı kullanın.
Birim testi için sahte iş yapan birçok kitaplıktır, çoğu kavak Cuckoo ve swifyMocky'dir .
Bu yazıda, SwiftyMocky kullanarak alayı nasıl yapabileceğimize dair genel bir bakış sunacağım.
HızlıMocky
https://github.com/MakeAWishFoundation/SwiftyMocky
Avantajlar
- Swift protokollerini otomatik olarak alay et
- Jenerikleri destekleyin
- Basit kurulum ve hafiflik
- İyi dokümantasyon
- Güzel ve kolay sözdizimi (otomatik tamamlamayı kullanan)
- Alay edilecek protokolleri işaretleyin
- Bu açıklamaya sahip kaynak dizinlerdeki her protokol Mock.generated.Swift'e eklenecektir.
- Tüm modellerde, kullanımı kolay sözdizimi ile verilen yöntem (hem örnek yöntem hem de genel işlev olarak erişilebilir) vardır, verilen yöntemler için dönüş değerlerinin ne olması gerektiğini belirtmeye izin verir (belirtilen özniteliklere dayalı olarak)
- Tüm modeller, kullanımı kolay sözdizimi ile bir doğrulama yöntemine sahiptir (hem örnek yöntemi hem de genel işlev olarak erişilebilir), bir yöntemin sahte olarak çağrılıp çağrılmadığını ve kaç kez doğrulanmasına izin verir. Ayrıca, yöntem özniteliklerinin önemli olup olmadığını (ve hangilerinin) belirtmenin uygun bir yolunu sağlar.
- Tüm modellerin, kullanımı kolay sözdizimi ile gerçekleştirme yöntemi (hem örnek yöntemi hem de genel işlev olarak erişilebilir) vardır, kapatmayı belirtmeye izin verir, bu, stubbed yöntemi çağrıldığında yürütülür.
Kurmak
- Cocoapod'ları kullanarak yükleyin
- Kolay sahte oluşturma için CLI yükleyin
> swiftymocky doktor # kurulumunuzu doğrulayın
> swiftymocky oluşturmak # taklit oluşturmak
- Mocks üretimi, outerSwiftLintRules kullanarak Swift tiftik kurallarını hariç tutma olanağına sahip Mockfile.yml dosyasına dayalıdır
Geliştiriciler olarak, dille sınırlı çalışma zamanı erişimi nedeniyle bazı katı sınırlarla, Swift ile dalga geçmek için sahip olduğumuz çok fazla araç yok. Ve burada kritik soruya geliyoruz - alay etmek için harici çerçeveleri kullanın ya da kullanmayın.
Tanınmış Bob Amca, onları mümkün olduğunca kullanmamaya devam ediyor; şöyle diyor: "Alaycı bir çerçeveye ihtiyaç duymaya başladığınız nokta, testlerinizle kodunuz arasındaki bağlantının çok yükseldiği noktadır. Ancak bundan sonra, alaycı çerçeveyi çok sık kullanmanıza gerek kalmayacak kadar kodunuz ve testler arasındaki bağlantıyı yeterince düşük tutmaya çalışmalısınız.
Okuduğunuz için teşekkürler! Bu makaleyi beğendiyseniz, diğer insanların da okuyabilmesi için lütfen alkışlayın :)
Mutlu kodlama :v: