आमतौर पर, जब कोई ट्रिगर चलता है, तो हम जांचते हैं कि उपयोगकर्ता के पास किस प्रकार की प्रोफाइल है, और यदि यह वह प्रकार है जहां हम ट्रिगर्स को चलाने के लिए नहीं चाहते हैं, तो हम किसी भी अन्य कोड को चलाने से पहले ट्रिगर से बाहर निकलें।परीक्षण कक्षा चलाने के दौरान मैं प्रबंधित ट्रिगर को निष्पादित करने से कैसे रोक सकता हूं?
समस्या: हमारे पास एक एसएफ पैकेज स्थापित है जिसे हमने किसी अन्य कंपनी से खरीदा है, और इसका सभी कोड हमारे लिए अदृश्य है, और संपादन योग्य नहीं है। हम उन ट्रिगर्स को यूआई के माध्यम से मैन्युअल रूप से अक्षम करने के अलावा अन्य चलाने से कैसे रोक सकते हैं? मैं टेस्ट क्लास चलाते समय उन्हें अस्थायी रूप से अक्षम करना चाहता हूं।
इस तरह कुछ करने के बारे में सोच रहा था, लेकिन एक त्रुटि मिली "डीपीएल को एपेक्स ट्रिगर पर अनुमति नहीं है।"
ApexTrigger at = [select id from ApexTrigger where name='SomeTriggerName'];
at.status = 'Inactive';
update at;
क्या आपके पास इसे अक्षम करने के लिए एक अच्छा कारण है? मुझे पता है कि परीक्षण कवरेज एक दर्द है, लेकिन यह वास्तविक दुनिया परिदृश्य का परीक्षण करना चाहिए - अगर वास्तविक दुनिया में ट्रिगर चल रहा है, तो आप यह सुनिश्चित करना चाहते हैं कि आपका कोड इसके साथ काम करता है! –
कारण मुझे इसे अक्षम करने की आवश्यकता है क्योंकि टेस्ट क्लास कई परिदृश्यों की जांच करता है, और पैक किए गए ट्रिगर्स एकाधिक SOQL कथन चलाते हैं, जिसके निष्पादन को मैं नियंत्रित नहीं कर सकता। 100% तक परीक्षण कवरेज प्राप्त करने से पहले, SOQL क्वेरी गिनती पैक किए गए नेमस्पेस में 100 की गवर्नर सीमा को हिट करती है। –