Ich versuche, einen Integrationstest mit PubSub -Emulator basierend auf dem Beispiel dieses Github -Repo zu erstellen, das wie < /p> aussieht[code]@SpringBootTest @Testcontainers @ActiveProfiles("test") public class PubSubIntegrationTests { private static final String PROJECT_ID = "test-project";
@Container private static final PubSubEmulatorContainer pubsubEmulator = new PubSubEmulatorContainer( DockerImageName.parse("gcr.io/google.com/cloudsdktool/cloud-sdk:367.0.0-emulators"));
@AfterEach void teardown() { // Drain any messages that are still in the subscription so that they don't interfere with // subsequent tests. await().until(() -> subscriberTemplate.pullAndAck("test-subscription", 1000, true), hasSize(0)); } } < /code> funktioniert für das obige Beispiel gut, aber wenn ich meine Implementierung wie folgt testen möchte < /p> @Autowired private FunctionCatalog catalog;
@Test void testSendB() throws ExecutionException, InterruptedException { Consumer function = catalog.lookup(MyFunction.class, FUNCTION_DEFINITION); var pubSubMessage = new PubSubMessage(); pubSubMessage.setData(Base64.getEncoder().encodeToString(EMPTY_MESSAGE.getBytes())); function.accept(pubSubMessage);
List msgs = await().until(() -> subscriberTemplate.pull("test-subscription", 10, true), not(empty()));
for (AcknowledgeablePubsubMessage msg : msgs) { msg.ack(); } } < /code> Es werfen Fehler aus: < /p> java.lang.RuntimeException: java.util.concurrent.ExecutionException: com.google.api.gax.rpc.NotFoundException: io.grpc.StatusRuntimeException: NOT_FOUND: Resource not found (resource=test-topic). [/code] wobei meine Service -Implementierung Publisher anstelle von PubSubPublisherTemplate aus dem Beispiel verwendet: [code] private final Publisher publisher;
public void publishMessage(String message) { var byteStr = ByteString.copyFrom(message, StandardCharsets.UTF_8); var pubsubApiMessage = getPubsubApiMessage(byteStr);
private PubsubMessage getPubsubApiMessage(ByteString byteStr) { return PubsubMessage.newBuilder() .setData(byteStr) .build(); } [/code] und funktioniert bei der Bereitstellung für GCP jedoch nicht in diesem Fall des Integrationstests mit dem PubSub -Emulator.
Ich habe einen Dienst unter Spring Boot, bei dem eine benutzerdefinierte Konfiguration eingerichtet wird, die mit dem ReplicaSet von MongoDB funktioniert
plugins {
id 'java'
id...
Ich habe eine gemeinsame Anwendungsweite der Singleton-Modellklasse (Projekt) durch Abhängigkeitsinjektion.
funktioniert in der Anwendung hervorragend. Aber wegen der DI habe ich Schwierigkeiten,...
Ich habe eine gemeinsame Anwendungsweite der Singleton-Modellklasse (Projekt) durch Abhängigkeitsinjektion.
funktioniert in der Anwendung hervorragend. Aber wegen der DI habe ich Schwierigkeiten,...