application.properties
Sınıf özellikleri (src / main / resources / application.properties) bir dosyada varsayılan özellikleri ayarlanır bir Spring-Boot uygulaması var .
Bir test.properties
dosyada bildirilen özelliklerle (src / test / resources / test.properties) JUnit testimdeki bazı varsayılan ayarları geçersiz kılmak istiyorum
Genellikle Junit Testlerim için özel bir Config Class'ım var;
package foo.bar.test;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import(CoreConfig.class)
@EnableAutoConfiguration
public class TestConfig {
}
İlk @PropertySource("classpath:test.properties")
olarak TestConfig sınıfında kullanmanın hile yapacağını düşündüm , ancak bu özellikler application.properties ayarlarının üzerine yazmayacak (bkz. Spring-Boot Reference Doc - 23. Harici Yapılandırma ).
Sonra -Dspring.config.location=classpath:test.properties
testi başlatırken kullanmaya çalıştım . Bu başarılı oldu - ancak her test yürütmesi için bu sistem özelliğini ayarlamak istemiyorum. Böylece koda koydum
@Configuration
@Import(CoreConfig.class)
@EnableAutoConfiguration
public class TestConfig {
static {
System.setProperty("spring.config.location", "classpath:test.properties");
}
}
talihsiz bir şekilde yine başarılı olamadı.
Ben gözden kaçmış olması gerektiği application.properties
ile JUnit testlerinde ayarları geçersiz kılmak için basit bir çözüm test.properties
olmalıdır.