Обычно, когда запускается триггер, мы проверяем, какой профиль у пользователя есть, и если это тот тип, в котором мы не хотим запускать триггеры, мы выходим из триггера перед запуском любого другого кода.Как остановить управляемый триггер от выполнения во время запуска тестового класса?
Проблема: у нас есть пакет SF, который мы приобрели у какой-либо другой компании, и весь его код невидим для нас и не редактируется. Как мы можем остановить некоторые из этих триггеров от запуска, кроме ручного отключения их через интерфейс? Я хочу временно отключить их при запуске тестового класса.
Думал о том, чтобы сделать что-то подобное, но получил сообщение об ошибке «DML не разрешен на ApexTrigger».
ApexTrigger at = [select id from ApexTrigger where name='SomeTriggerName'];
at.status = 'Inactive';
update at;
У вас есть веская причина для его отключения? Я знаю, что тестовое покрытие - это боль, но он должен тестировать сценарий реального мира - если триггер будет запущен в реальном мире, вы хотите убедиться, что ваш код работает с ним! –
Причина, по которой мне нужно ее отключить, состоит в том, что тестовый класс проверяет многие сценарии, а запущенные триггеры запускают несколько инструкций SOQL, выполнение которых я не могу контролировать. Прежде чем я смогу получить покрытие для теста до 100%, количество запросов SOQL достигнет предел регулятора 100 в упакованном пространстве имен. –