Jika saya harus menjawab dalam satu kalimat, ini karena Springboot Berpendapat. Ini akan mencoba untuk terhubung ke mongo segera setelah melihat ketergantungan mongo di pom Anda melalui AutoConfiguration
kelas.
Jika Anda ingin mengganti perilaku default dan memberi tahu Springboot untuk tidak melakukan MongoAutoConfiguration maka Anda dapat melakukannya dengan cara ini
@SpringBootApplication(exclude=MongoAutoConfiguration.class)
public class YourMainApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
atau Anda dapat melakukannya dengan baris ini di file properti Anda
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration
Jika Anda melakukan salah satu di atas, maka itu akan mengecualikan MongoAutoconfiguration dari aplikasi Anda (bukan hanya dari pengujian Anda). Yang berarti ketika Anda memulai aplikasi Anda maka Anda tidak memiliki akses ke mongo (Jika ini yang Anda inginkan).
Sejak SpringbootTest
anotasi memuat seluruh koteks aplikasi, ia mencari kelas Aplikasi Utama ini. Jika Anda memiliki beberapa Konfigurasi Otomatis yang dikecualikan maka itu akan dikecualikan, bahkan dalam pengujian Anda. Jadi Anda tidak akan memiliki masalah koneksi ke mongo.
Jika Anda ingin mengecualikan Konfigurasi Otomatis ini hanya dalam pengujian (sehingga saat menjalankan aplikasi Anda tidak ada yang berubah), Anda dapat melakukannya dengan cara ini
@TestPropertySource(properties=
{"spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration"})
@SpringBootTest
public class GreetingControllerTests {...}