Я использовал метод Status (), который выводит значение в случае сбоя:
procedure Test.TestGetStringListQueryValuesException;
var
ReturnValue: TList<String>;
item: String;
begin
ReturnValue := FTest.GetStringListQueryValues;
try
for item in ReturnValue do
begin
Status('Value Processed: ' + item);
CheckTrue(Pos('B', item) > 0, 'Wrong Value, Expected Item containing ''B'' but found: ' + item);
end;
finally
ReturnValue.Free;
end;
end;
Результат примерно такой:
TestGetIntegerListQueryValuesException: ETestFailure
at $0050B842
Wrong Value, Expected > 50 and < 60 but found: 61, expected: <True> but was: <False>
Status Messages
Value Processed: 52
Value Processed: 54
Value Processed: 55
Value Processed: 58
Value Processed: 59
Value Processed: 61
Действительно полезно определить, что пошло не так во время теста.
Я не пробовал SetStatusListener (), но я думаю, что это должно быть правильным способом, если мы хотим показать ведение журнала при успешном выполнении теста.
Я хотел бы имитировать то же поведение, что и в Nunit, где вы можете регистрировать настраиваемые сообщения в секции вывода.
Есть идеи получше?