Ich versuche, einen Dienst, der verschlüsselte Werte von AWS KMS (Amazon Schlüssel-Management-Service) angesichts der Eimer, Schlüssel und Region.Inject 3rd Party Finale Klasse
Dies ist nicht das Problem, das ich habe, aber wenn ich zum Komponententest gehe, möchte ich nicht wirklich eine Drittparteimethode oder einen Integrationstest prüfen und es einen Einheitstest nennen.
Ich möchte in der Lage sein, diese Klasse zu verspotten, um nur Garbage Text zum Testen zurückzugeben.
Wo ich kämpfe ist mit dem AmazonS3ClientBuilder.
Wie kann ich eine Bohne erstellen, um eine Instanz davon zurückzugeben, ohne etwas wie das zu tun.
@Configuration
Public class config {
@Bean
public AmazonS3ClientBuilder amazonS3ClientBuilder{
return AmazonS3ClientBuilder.standard();
}
}
Hier ist, wie ich dies derzeit verwende.
Sehe ich das falsch und sollte ein AmazonS3 für den Client anstelle des Builders injizieren?
Vielen Dank im Voraus.
Ich denke, Sie sollten stattdessen den tatsächlichen S3Client injizieren und seine Konstruktion und Konfiguration in Ihrer Konfigurationsklasse belassen. Wenn Ihre Tests dann ausgeführt werden, können Sie einfach ein anderes S3Client Bean konfigurieren, das einen Mock zurückgibt und etwas wie Mockito verwendet. –
Wenn die für die Erstellung des Clients benötigten Eingaben bis zur Laufzeit nicht bekannt sind, würde ich das berücksichtigen, da ich den Client ohne diesen Client nicht erstellen kann. –
Wie würden Sie das im Allgemeinen oder speziell für Ihre Testfälle unterbringen? –