0

I have a trigger and an apex class, When i deploy them from staging to production I get the following error. What Should i do ? I have a week experience in salesfroce.

Issue

Code Coverage Failure Your organization's code coverage is 71%. You need at least 75% coverage to complete this deployment. Also, the following triggers have 0% code coverage. Each trigger must have at least 1% code coverage. AccountCallout

Code Trigger

trigger AccountCallout on Account (after update) {
    for (Account a : Trigger.new) {
        // make the asynchronous web service callout

        WebServiceCallout.sendNotification(a.Name, 
           a.Email__c, a.BillingStreet,a.Country_of_Headquarters__c,
           a.Any_other_questions_of_operation__c, a.Website, a.Year_of_formation__c,
           a.Legal_Status__c,a.Legal_Status_Other__c, a.Mission_Statement__c,
           a.Mission_Statement_Other__c, a.Sector_of_Operation__c, a.Sector_Other__c,
           a.What_does_this_Enterprise_do__c, a.Parent_Company_C__c, a.NumberOfEmployees,
           a.How_did_you_hear_about_Connect__c, a.Why_interested_in_Connect_programme__c, a.Innovative_idea__c,
           a.Benefits_of_your_innovation__c, a.Seeking_a_partner_Requirements__c, a.Any_other_info__c,
           a.Value_enterprise_provides__c, a.Improve_health_or_agri_food_prospects__c,
           a.Opportunities_to_improve_diversify_grow__c );        
    }
}
  • If you can hust point me in the right direction – Tushar Narang Feb 10 '16 at 10:41
  • You are calling out in for loop. You should make the trigger bulkified. – Ashwani Feb 10 '16 at 10:51
  • 1
    What have you tried? Do you have test classes? If so, post them in your question. If not, write them. If it still doesn't work - post a question asking what you want and showing us what you tried. SFSE is a Q&A site where you can find help if you also show some effort you did yourself. – Novarg Feb 10 '16 at 13:06
  • @Novarg : Duly Noted sir, thanks for the info. I had no idea regarding test classes before today. So i was just looking for a way to write test classes. – Tushar Narang Feb 10 '16 at 13:24
  • 1
    tushar, I suggest you go to the Trailhead Modules and locate the Test Class module to learn how to write them properly. There's also a module on Triggers. In your case, also look at the documentation on making Mock callouts. – crmprogdev Feb 10 '16 at 13:47
2

Yes as mentioned your code coverage should be greater than 75% to deploy.

  1. Create appropriate test class for this trigger
  2. In the test class make sure to update the Account object at-least once

Ref:

And also its good to keep in mind the best practices:

Ref:

EDIT

Simplest test which would cover your trigger would be:

@isTest 
  private class AccountCalloutTest {
      static testMethod void validateCallout() {
         Account acc = new Account(Name='Test Account');
         insert acc;
         update acc;
      }
  }

Note:

The above test just takes your test coverage up. If you are really interested in testing the whole functionality I would recommend doing real System.assert to validate the behavior of your artifact.

  • 1
    I think it's #1 he needs help with :) – mkorman Feb 10 '16 at 12:01
  • What will be the shortest test class example – Tushar Narang Feb 10 '16 at 13:31
  • mkorman sure, I was thinking he needs pointers to proceed. @tushar I updated the answer with a sample test. – karthikselva Feb 10 '16 at 14:57
  • @karthikselva I get the following error after writing your test case : esttrigger validateCallout System.NullPointerException: null argument for JSONGenerator.writeStringField() Stack Trace: Class.System.JSONGenerator.writeStringField: line 178, column 1 Class.WebServiceCallout.sendNotification: line 27, column 1 – Tushar Narang Feb 11 '16 at 4:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.