Java Manifest'ine bir özellik enjekte etmek (veya tüm bir manifesti enjekte etmek) için bir test süresi var mı?Java birim testleri ayarlandı Manifest özelliği
Test zamanını null olarak çözen bildiriden (sürüm numarası) bir değer okuyoruz.
Şimdiye kadar test kodumuzda kodlanmış bir MANIFEST.MF dosyası yerleştirmeyi denedik, ancak işe yaramadı.
Biz bildirim okumak için kullandığınız koddur: bunu apaçık okur işlevselliği sarın ve alay edeceğiz
private Attributes getManifest() {
URLClassLoader cl = (URLClassLoader) getClass().getClassLoader();
Manifest manifest;
try {
URL url = cl.findResource("META-INF/MANIFEST.MF");
manifest = new Manifest(url.openStream());
} catch (IOException e) {
throw Throwables.propagate(e);
}
return manifest.getMainAttributes();
}
Son çare olarak, ancak bu entegrasyon testleri, ve gerekiyordu kara kutu olmak (yani, alay etmekten kaçınıyoruz).
Ek bilgi: Java 7, IntelliJ'de veya Gradle uygulamasında Junit testleri çalıştırılıyor.
bir testi çalıştırdığınızda Yani, nerede MANIFEST.MF bulunduğu almaktadır tam olarak? –
Test bir bağımsız java uygulaması olduğunda ve bir kapsayıcıda çalışan bir uygulama olmadığında, testler (muhtemelen JUnit?) Çalıştırıyorken neden java manifest'ini değiştirmek istersiniz? – czpona