среда, 24 марта 2010 г.

Упрощение CheckException в DUnit с помощью анонимных функций

К сожалению, для проверки функции на возврат исключения возможен только для процедуры типа:
TTestMethod  = procedure of object;
procedure CheckException(AMethod: TTestMethod; AExceptionClass: TClass; msg :string = '');
Легким движением руки(наследником или правкой оригинального класса) для свежих версий Delphi упрощаем написание таких тестов:

TTestProc2  = reference to procedure;
TTestCase2 = class(TTestCase)
public
  procedure CheckException2(AMethod: TTestProc2; AExceptionClass: TClass; msg :string = '');
end;
Пример использования:
...
CheckException2(procedure begin DirDelete(TestDir); end, EInOutError);

Комментариев нет: