DynamicTest
farklı olarak, ParameterizedTest
çekirdek junit-jupiter-api
bir parçası değildir ancak (3.12.1. Required Setup bakınız) junit-jupiter-params
adlandırılan ayrı bir dışlayıcı bulunmaktadır. Bunun nedeni, JUnit 5'in temel ilkelerinden biri, "özellikler üzerinden uzantı noktalarını tercih etmektir" (Core Principles · junit-team/junit5 Wiki). JUnit Jupiter API'sı, JUnit Jupiter Params parametreli testlerin tanımlanması için daha yüksek düzeyli bir API tanımlarken, JUnit Jupiter API'sinin dinamik testlerin JUnit'e bir genişletme noktası olarak nasıl oluşturulacağını ve kaydedileceğini tanımlar. Teması şu anda "dinamik kapsayıcılar ve küçük API değişiklikleri" dir. Bu beklenen değişikliklerle, test geliştiricileri sadece dinamik testler oluşturamayacak, aynı zamanda dinamik test ağaçlarını (diğer dinamik kaplar ve/veya testler içeren dinamik kaplar) üretebilecekler, ki bu da şu anda paramterize edilmiş testlerle yapılamayacak bir şeydir. Bu, şartname benzeri testler oluşturmak için çok yararlı olduğunu kanıtlayacaktır. Kısaca, benim anladığım gibi, ilk olarak, temel düşük seviyeli API'lar (örneğin dinamik kaplar/testler) aracılığıyla temel uzantı noktalarını serbest bırakmak ve daha sonra 3. tarafları, bunları kaldıran uzantıları oluşturmak için yaratmak ve teşvik etmek (örneğin, parametrelendirilmiş) testleri).
İyi soru. Dinamik testler olduğu için, özellikle de bir uzantı noktası tarafından desteklenmedikleri için açık bir uygulamaya sahip değildir (bkz. [# 371] (https://github.com/junit-team/junit5/issues/371)) . – Nicolai
Yorumumuz için teşekkürler @Nicolai. Girdilerini okudum ve senin amacının ne olduğunu anladığımı düşünüyorum. Bununla birlikte, benim burada dinamik testler yaratmanın yolu, sadece dinamik testlerin özellikle faydalı olduğu durumları anlamak için değil. Uzantı destekli dinamik testin buna nasıl cevap vereceğinden emin değilim. Geliştiricilerin Dinamik testleri tanıtarak çözmeye çalıştıkları problemi bilmek isterim. – Yasin
İkincisi ile ilgili olarak: Dinamik testler, parametrik testlerden çok önce oluşturuldu. Bunları dahil etmenin nedeni, araç üreticilerinin testlerin çalışma zamanında oluşturulabileceğinin farkında olduğundan emin olmaktı. Ah, şimdi hatırladım ki bir sebep [lambda testlerine] izin vermek oldu (https://blog.codefx.org/libraries/junit-5-dynamic-tests/#Lambda-Tests). – Nicolai