Где писать методы для регистрации тестов?

Во всех примерах методы регистрация тестов прописываются в классе

      type
       TCalc=class
        private
         class Procedure _RegisterMethod; // Register TestMethods
         class  Function _TestMethods( IMethod:IRunMethodParam    // Test Methods
                            ):TTestResultParam;// Result Test
         ...

Но методы регистрации можно прописывать в любом месте, в любом классе и даже без класса.

Например мы можем написать методы регистрации в другом классе TCalcTest:

Класс TCalcTest может быть как в исходном модуле, так и во внешнем.

 type
TCalcTest=class
private class Procedure _RegisterMethod; // Register TestMethods
class Function _TestMethods( IMethod:IRunMethodParam // Test Methods
 ):TTestResultParam;// Result Test
...

Можно сделать класс сборник для тестов различных многих классов:

      type
       TTestCollections=class
        private
        // TCalc
         class Procedure TCalc_RegisterMethod; // Register TestMethods
         class  Function    TCalc_TestMethods( IMethod:IRunMethodParam ):TTestResultParam;
        // TFiles
         class Procedure TFiles_RegisterMethod; // Register TestMethods
         class  Function    TFiles_TestMethods( IMethod:IRunMethodParam ):TTestResultParam;
        // TBitmap
         class Procedure TBitmap_RegisterMethod; // Register TestMethods
         class  Function    TBitmap_TestMethods( IMethod:IRunMethodParam ):TTestResultParam;

Можно создавать методы тестов вне классов, немного изменив их описание

Procedure NoClass_RegisterMethod(Owner:TObject); // Register TestMethods
Function  NoClass_TestMethods(Owner:TObject;IMethod:IRunMethodParam):TTestResultParam;

и дописать код при регистрации

 var
  rm:TTestRegisterMethod;
  tm:TTestMethodsRun;
begin
 ...
    TMethod(rm).Code:=@NoClass_RegisterMethod;
    TMethod(tm).Code:=@NoClass_TestMethods;
    L_pIndex_NoClass   := IRegisterClass(rm,tm,'TCalc_NoClassTest','No Test classed');
Мои комментарии по поводу использования методов тестирования в другом классе и другом модуле

У Вас есть выбор, Вы можете делать как Вам удобно.

Но по своей практике тестирования (около 10 лет), я могу сказать, что хранить тесты в самом модуле и самом классе, самое правильное решение.

Когда у вас маленький проект, все наглядно.

Отдельные модули рабочего кода, отдельные модули для тестов, отдельные классы тестирования.

Вроде все просто и удобно.

Но когда проект становится большим с сотней рабочих модулей, появляются одновременно сотни тестовых модулей.

И с увеличением проекта увеличивается головная боль, по поддержке всех этих модулей.

И при многопользователькой работе, кто нибуть да забудет внести изменения в тестовый класс, особенно если используется грязный хак для доступа к данным .