Testing your Domain code can be accomplished in the standard Force.com manner. Typically, test classes are named by suffixing
Test at the end of the Domain class name, for example,
RacesTest. Test methods have the option to test the Domain class code functionality either directly or indirectly.
Indirect testing is accomplished using only the DML and SOQL logic against the applicable Custom Objects and asserting the data and field errors arising from these operations. Here, there is no reference to your Domain class at all in the test code.
However, this only tests the Apex Trigger Domain class methods. For test methods that represent custom domain behaviors, you must create an instance of the Domain class. This section will illustrate examples of both indirect and direct testing approaches.