Можно проверить определенные данные курсора или просто запросить количество строк, содержащих ошибку.Таким образом, ваша проверка действительно проста, но не дает очень специфических результатов.
Если я правильно понимаю, вы в основном хотите проверить результаты другого набора тестов, и поэтому я думаю, что было бы неплохо оставить этот тест универсальным в его настройке (например, без жестко закодированного списка таблиц), но в то же время пусть сообщают о конкретных проблемах.
Возможный способ сделать это - запросить все строки в таблице и проверить каждый из трех столбцов.Вы можете использовать имя таблицы в пользовательском сообщении, поэтому результат теста будет содержать конкретную информацию о том, какая таблица не прошла тест.Таким образом, для ваших тестовых данных тест может выглядеть следующим образом:
-- %test(All bladiebla checks in summary table should be passed)
procedure Check_Summary_Status;
procedure Check_Summary_Status is
begin
for r in (select * from Summary_Status t) loop
ut.expect(r.COLUMN_STATUS, 'Column status for table ' || r.Table1).to_equal('PASS');
ut.expect(r.DATA_STATUS, 'Data status for table ' || r.Table1).to_equal('PASS');
ut.expect(r.CONSTRAINTS_STATUS, 'Constraint status for table ' || r.Table1).to_equal('PASS');
end loop;
end;
И выходные данные будут выглядеть следующим образом, явно статично, какая проверка не удалась и для какой таблицы.
1) check_summary_status
"Data status for table SUPP1"
Actual: 'FAIL' (varchar2) was expected to equal: 'PASS' (varchar2)
at "MYSCHEMA.TST_MY_DEMO", line 10 ut.expect(r.DATA_STATUS, 'Data status for table ' || r.Table1).to_equal('PASS');