Bu konuşmayı benim yorumum:
- sınıflar değil, test bileşenleri.
- bileşenleri arabirim bağlantı noktaları üzerinden test eder.
Konuşmada belirtilmemiştir, ancak tavsiye için varsayılan bağlamın şöyle olduğunu düşünüyorum:
- kullanıcılar için bir sistem geliştiriyorsunuz, örneğin bir yardımcı program kütüphanesi veya çerçevesi değil.
- Testin amacı, rekabetçi bir bütçe dahilinde mümkün olduğunca başarılı bir şekilde sunmaktır.
- bileşenler C # / Java gibi tek, olgun, muhtemelen statik olarak yazılmış bir dilde yazılır.
- bir bileşen 10000-50000 satırlık sıradadır; Maven veya VS projesi, OSGI eklentisi vb.
- bileşenler tek bir geliştirici veya yakın bir şekilde entegre edilmiş bir ekip tarafından yazılır.
- altıgen mimari gibi bir şeyin terminolojisini ve yaklaşımını takip ediyorsunuz
- Bileşen bağlantı noktası, yerel dili ve tür sistemini geride bıraktığınız yerdir, http / SQL / XML / bayt / ...
- her bağlantı noktasını kaydırmak, Java / C # anlamında, anahtarlama teknolojilerine geçmek için uygulamaları devre dışı bırakılabilen yazılı arabirimlerdir.
Bu nedenle, bir bileşeni test etmek, bir şeyin yine de makul şekilde birim testi olarak adlandırılabileceği en büyük kapsamdır. Bu, bazı insanların, özellikle akademisyenlerin bu terimi nasıl kullandıklarından oldukça farklıdır. Tipik birim test aracı eğitimindeki örneklere benzemez. Bununla birlikte, donanım testindeki kökeni ile eşleşir; pano ve modüller kablo ve vidalarla değil, ünite testinden geçirilmiştir. Ya da en azından bir vidayı test etmek için sahte bir Boeing yapmıyorsun ...
Bundan ötürü tahmin etmek ve kendi düşüncelerimin bazılarını atmak,
- Her arayüz bir girdi, çıktı veya ortak çalışan (veritabanı gibi) olacaktır.
- giriş arayüzlerini test edersiniz ; yöntemleri çağırın, dönüş değerlerini iddia edin.
- çıkış arayüzlerini taklit edersiniz ; belirli bir test durumu için beklenen yöntemlerin çağrıldığını doğrulayın.
- ortak çalışanları sahte yaparsınız ; basit ama çalışan bir uygulama sağlamak
Bunu düzgün ve temiz bir şekilde yaparsanız, alaycı bir araca zar zor ihtiyacınız vardır; sistem başına sadece birkaç kez kullanılır.
Bir veritabanı genellikle bir ortaktır, bu yüzden alay etmek yerine sahte olur. Bu elle uygulamak acı verici olacaktır; Neyse ki böyle şeyler zaten var .
Temel test deseni bir dizi işlem yapmaktır (örneğin bir belgenin kaydedilmesi ve yeniden yüklenmesi); çalıştığını onaylayın. Bu, diğer tüm test senaryoları ile aynıdır; hiçbir (çalışan) uygulama değişikliğinin böyle bir testin başarısız olmasına neden olması muhtemel değildir.
İstisna, veritabanı kayıtlarının yazıldığı ancak test edilen sistem tarafından asla okunmadığı durumdur; örneğin denetim günlükleri veya benzeri. Bunlar çıktılardır ve bu yüzden alay edilmelidir. Test deseni bir dizi işlem yapmaktır; Denetim arabiriminin belirtildiği gibi yöntem ve bağımsız değişkenlerle çağrıldığını doğrulayın.
Burada bile, mockito gibi güvenli bir alay aracı kullanmanız koşuluyla , bir arabirim yönteminin yeniden adlandırılmasının test hatasına neden olamayacağını unutmayın. Testleri yüklerken bir IDE kullanırsanız, yeniden adlandırma yöntemi ile birlikte yeniden düzenlenir. Eğer yapmazsanız, test derlenmeyecektir.