In this section, we'll be checking out how to create tests for macros. Particularly, we'll be adding a test for the defchrono macro that we created in Chapter 6, Metaprogramming – Code that Writes Itself. Like the last section, where we added tests for our Phoenix Channels, this section isn't related to a type of testing, but rather related with showing how to test a particular component we've created.
The most common and effective approach to test macros is to assert on the behavior of the code generated by the macro, and not on the code generation itself. Testing the generated AST directly often leads to brittle and unmanageable tests. These tests can be seen as unit tests for macros, because they're testing the macro expansion ...