Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

181
Visualizações
Mensajes no enviados a Azure Service Bus en pruebas de integración

Quiero realizar pruebas de integración que impliquen interacción con el bus de servicio. He notado que algunos mensajes no se envían, aunque no se lanza ninguna excepción. Estoy usando un nivel gratuito de ASB.

Ese es el método de servicio responsable de enviar el mensaje:

 public class ServiceBusMessagingSender<T> : IMessagingSender<T> where T : IMessage { private readonly string _connectionString = Environment.GetEnvironmentVariable("SERVICE_BUS_CONNECTION_STRING_SENDER"); private readonly ServiceBusSender _sender; private readonly IMessageSerializer<T> _messageSerializer; public ServiceBusMessagingSender(string queueName, IMessageSerializer<T> messageSerializer, string connectionString=null) { _messageSerializer = messageSerializer; _connectionString ??= connectionString; var client = new ServiceBusClient(_connectionString); this._sender = client.CreateSender(queueName); } public void SendMessage(T message) { var serviceBusMessage = _messageSerializer.Serialize(message); _sender.SendMessageAsync(serviceBusMessage).GetAwaiter().GetResult(); }

Luego, este método se llama en las pruebas en la suite NUnit:

 public class EndtoEndTests { private readonly ServiceBusMessagingSender<DataRequestDto> _messagingSender = new(RequestsQueue, new MessageSerializer<DataRequestDto>(), WriterConnectionString); [Test] public void GoodTypes() { //... //WHEN var request = new GoodTypesRequest() { RequestTimeStamp = DateTime.Now, RequestType = RequestType.GoodTypes }; _messagingSender.SendMessage(request ); ///... } }

Estoy usando las siguientes versiones de paquetes para ASB:

 <PackageReference Include="Azure.Messaging.ServiceBus" Version="7.2.0" /> <PackageReference Include="Microsoft.Azure.ServiceBus" Version="5.1.3" />
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Está llamando a un método Async dentro de un vacío, por lo que termina en una condición de carrera de si el envío puede completarse antes de que se cierre la función. Cambie su función a una Tarea en lugar de anularla y el problema debería desaparecer. También es posible que desee cambiar _sender.SendMessageAsync(serviceBusMessage).GetAwaiter().GetResult(); await _sender.SendMessageAsync(serviceBusMessage); para facilitar la lectura del código.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda