Bir süre önce, bulamadığım bir Yığın Taşması cevabında, genel API'leri test etmeniz gerektiğini açıklayan bir cümle okudum ve yazar arayüzleri test etmeniz gerektiğini söyledi. Yazar ayrıca, bir yöntem uygulaması değiştiyse, test senaryosunu değiştirmeniz gerekmediğini, çünkü bunu yapmak, test altındaki sistemin çalıştığından emin olmak için sözleşmeyi bozacağını açıkladı. Başka bir deyişle, yöntem çalışmazsa test başarısız olur, ancak uygulama değiştiği için değil.
Alaycılık hakkında konuşurken dikkatimi çekti. Alay etme, büyük ölçüde testin bağımlılıkları altındaki sistemden beklenti çağrılarına dayandığından, alaylar arayüzden ziyade uygulama ile sıkı sıkıya bağlıdır.
Sahte ve saplama araştırılırken , çeşitli makaleler bağımlılıklardan beklentilere dayanmadığı için alay yerine saplamalar kullanılması gerektiği konusunda hemfikirdir, yani testin test uygulaması altındaki temel sistem hakkında hiçbir bilgiye ihtiyacı yoktur.
Sorularım şöyle olurdu:
- Alaycılar açık / kapalı prensibini ihlal ediyor mu?
- Tartışmada, son paragraftaki taslaklar lehine, saplamaları alaylara karşı çok büyük olmayan bir şey eksik mi?
- Öyleyse, ne zaman alay etmek için iyi bir kullanım durumu ve ne zaman taslak kullanmak için iyi bir kullanım durumu olur?
Since mocking relays heavily on expectation calls from system under test's dependencies...
Sanırım bu, nereye gittiğin. Alay etmek, harici bir sistemin yapay bir temsilidir. Harici sistemi , testlerin söz konusu harici sisteme bağımlılığı olan koda karşı yürütülmesine izin verecek şekilde simüle ettiği sürece harici sistemi hiçbir şekilde temsil etmez . Kodunuzun gerçek, engellenmemiş sistemle