通常,當觸發器運行時,我們檢查用戶具有哪種類型的配置文件,如果是我們不希望觸發器運行的類型,那麼在運行任何其他代碼之前我們退出觸發器。如何在運行測試類時停止執行託管觸發器?
問題:我們有一個SF軟件包安裝,我們從其他公司購買的,以及所有它的代碼是不可見的我們,是不是編輯。我們如何阻止其中一些觸發器的運行,而不是通過UI手動禁用它們?我想在運行測試類時暫時禁用它們。
還想着做這樣的事情,卻得到了一個錯誤說「DML不允許ApexTrigger。」
ApexTrigger at = [select id from ApexTrigger where name='SomeTriggerName'];
at.status = 'Inactive';
update at;
你有很好的理由想禁用它嗎?我知道測試覆蓋率是一個痛苦,但它應該測試一個真實的世界場景 - 如果觸發器要在真實世界中運行,您要確保您的代碼與它一起工作! –
我需要禁用它的原因是因爲測試類檢查了很多場景,並且打包的觸發器運行多個SOQL語句,我無法控制其執行。在我能夠將測試覆蓋率提高到100%之前,SOQL查詢計數在打包的名稱空間中達到100的管理限制。 –