I know it sounds so silly, but I've been bit by this kind of stuff before. Here an example scenario:

1. Tomorrow, RabbitMQ starts throwing errors if there is a routingKey
2. We start handing a 400 error and update our routingKey to not have dashes
3. We fix all the failing unit tests, but this one won't be failing so we miss it!
4. A regression occurs that starts allowing a null exchangeName
5. This test still passes because it's throwing a 400 based on our routingKey with `-` in it