The Test Framework contains two ready-made protocol tests implemented using template classes:
Protocol tests help leverage testing effort by allowing you to test classes when those classes are expected to adhere to some protocol.
If your object uses the default comparator and default streamer, protocol macros let you write entire protocol tests with a single line.
You can use the macros whenever you can create the target with a single parameter list. You cannot use the macros if you need to create or reference other objects in order to create your target. In this case, you must derive your protocol test class from the appropriate template class.