Поведение RabbitMQ четко определено в этом отношении, поэтому я не уверен, в чем смысл теста (сборка уже предположительно имеет автоматические тесты для этого поведения).
Если RabbitMQпри установленном сердцебиении отброшенный TCP-сокет будет обнаружен после прохождения двух интервалов сердцебиения. Если нет, то мертвый сокет будет обнаружен при попытке следующей сетевой операции. Это связано с тем, как работает TCP.
После того, как отброшенный сокет будет обнаружен, будет запущена логика закрытия соединения приложения. Это включает в себя отправку событий закрытия соединения и канала. Я быстро прочитал документацию по клиенту .NET и похоже, что они реализовали автоматическое восстановление. Вам, вероятно, придется прочитать код, чтобы узнать, что именно он делает, и, честно говоря, я бы не стал доверять ему настолько, насколько я мог бы его выбросить. Я предпочел бы обработать повторное подключение вручную.