RabbitMQ.Client.Mock
1.2.1
See the version list below for details.
dotnet add package RabbitMQ.Client.Mock --version 1.2.1
NuGet\Install-Package RabbitMQ.Client.Mock -Version 1.2.1
<PackageReference Include="RabbitMQ.Client.Mock" Version="1.2.1" />
<PackageVersion Include="RabbitMQ.Client.Mock" Version="1.2.1" />
<PackageReference Include="RabbitMQ.Client.Mock" />
paket add RabbitMQ.Client.Mock --version 1.2.1
#r "nuget: RabbitMQ.Client.Mock, 1.2.1"
#:package RabbitMQ.Client.Mock@1.2.1
#addin nuget:?package=RabbitMQ.Client.Mock&version=1.2.1
#tool nuget:?package=RabbitMQ.Client.Mock&version=1.2.1
RabbitMQ.Client.Mock
Provides a way to mock the RabbitMQ.Client library for unit testing.
Installation
Just add the RabbitMQ.Client.Mock NuGet package to your project.
Usage
// Creates the connection factory which is the entry point for the mock.
IConnectionFactory factory = RabbitMQMocker.CreateConnectionFactory();
// Create connections and channels as you would normally do.
IConnection connection = await factory.CreateConnectionAsync();
IChannel channel = await connection.CreateChannelAsync();
Features
RabbitMQ.Client.Mock supports, or at least tries to support as much as scenarios as possible. Some of the features include:
- Usage of multiple channels so you can mock having multiple consumers & producers that use their own channels.
- Mimics behaviour when deleting queues and exchanges.
- Mimics behaviour regarding client named queues, or server named queues.
- Correct routing of messages, including usage of exchange-to-exchange bindings.
- Supports Direct, Fanout, Headers & Topic exchanges.
- Usage of DeadLetter exchanges and queues.
Note
The solutions contains 3 projects:
- RabbitMQ.Client.Mock: The actual mock implementation.
- RabbitMQ.Client.Mock.Tests: The unit tests for the mock implementation.
- RabbitMQ.Client.Tests: The same unit tests but pointing to an actual localhost based RabbitMQ service.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- RabbitMQ.Client (>= 7.1.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
1.2.1 Release (2025-05-22)
- Fixed a bug in BasicRejectOperation with a wrong comparison being made. (logical AND instead)
1.2.0 Release (2025-05-21)
- Changed .NET version from .NET 9.0 to .NET 8.0 for improved compatibility.
- Complete refactoring of the internal mock server in order to improve unit test isolation.
- Added support for Fanout, Headers & Topic exchanges (not fully tested yet).
- Improved compliance to RabbitMQ client behaviour.
1.0.2 Release (2025-05-13)
- Added support for exchange to exchange bindings.