RabbitMQ
RabbitMQ is a message broker that enables reliable communication between distributed applications by managing and routing messages between them.
Add the following dependency to your project file:
dotnet add package Testcontainers.RabbitMq
You can start a RabbitMQ container instance from any .NET application. This example uses xUnit.net's IAsyncLifetime
interface to manage the lifecycle of the container. The container is started in the InitializeAsync
method before the test method runs, ensuring that the environment is ready for testing. After the test completes, the container is removed in the DisposeAsync
method.
private readonly RabbitMqContainer _rabbitMqContainer = new RabbitMqBuilder().Build();
public Task InitializeAsync()
{
return _rabbitMqContainer.StartAsync();
}
public Task DisposeAsync()
{
return _rabbitMqContainer.DisposeAsync().AsTask();
}
[Fact]
[Trait(nameof(DockerCli.DockerPlatform), nameof(DockerCli.DockerPlatform.Linux))]
public void IsOpenReturnsTrue()
{
// Given
var connectionFactory = new ConnectionFactory();
connectionFactory.Uri = new Uri(_rabbitMqContainer.GetConnectionString());
// When
using var connection = connectionFactory.CreateConnection();
// Then
Assert.True(connection.IsOpen);
}
The test example uses the following NuGet dependencies:
<PackageReference Include="Microsoft.NET.Test.Sdk"/>
<PackageReference Include="coverlet.collector"/>
<PackageReference Include="xunit.runner.visualstudio"/>
<PackageReference Include="xunit"/>
<PackageReference Include="RabbitMQ.Client"/>
To execute the tests, use the command dotnet test
from a terminal.
Tip
For the complete source code of this example and additional information, please refer to our test projects.