Testing is essential to software engineering; no application can gracefully evolve over time if it is not associated with a consummate set of automated tests that act as a safety net against regression. Indeed, beyond validating that applications exhibit the intended behavior, testing is about defeating the test of time. RabbitMQ applications do not escape this rule, as this chapter explains in detail. Sometimes, reflecting about the code and testing it is not enough. Tracing comes into play when an actual application is executed and its inputs/outputs are scrutinized in order to get a deeper understanding of what it does. This chapter presents two handy tracing tools provided by RabbitMQ, which are very likely to become prominent in your developer's toolbox.
In this chapter, you will learn about the tools and techniques to do the following:
Unit testing RabbitMQ applications
Writing integration tests for these applications
Tracing the AMQP protocol...