通常,当触发器运行时,我们检查用户具有哪种类型的配置文件,如果是我们不希望触发器运行的类型,那么在运行任何其他代码之前我们退出触发器。如何在运行测试类时停止执行托管触发器?
问题:我们有一个SF软件包安装,我们从其他公司购买的,以及所有它的代码是不可见的我们,是不是编辑。我们如何阻止其中一些触发器的运行,而不是通过UI手动禁用它们?我想在运行测试类时暂时禁用它们。
还想着做这样的事情,却得到了一个错误说“DML不允许ApexTrigger。”
ApexTrigger at = [select id from ApexTrigger where name='SomeTriggerName'];
at.status = 'Inactive';
update at;
你有很好的理由想禁用它吗?我知道测试覆盖率是一个痛苦,但它应该测试一个真实的世界场景 - 如果触发器要在真实世界中运行,您要确保您的代码与它一起工作! –
我需要禁用它的原因是因为测试类检查了很多场景,并且打包的触发器运行多个SOQL语句,我无法控制其执行。在我能够将测试覆盖率提高到100%之前,SOQL查询计数在打包的名称空间中达到100的管理限制。 –