从沙盒到生产的Salesforce ApexClass部署

问题描述

我正在尝试将Apex类从沙箱部署到生产环境。 但是我收到代码覆盖错误

我的代码覆盖率为69%,我不知道如何将其提高到75%。但是我的代码在沙盒上工作正常。

请帮助我。

我的代码是:

@RestResource(urlMapping='/TestAPI')

global with sharing class TestingAPI {   
    @HttpPost
    global static string doPost(string company,string first_name)
    {
        Lead objLead = new Lead();
        objLead.Company = company;
        objLead.FirstName = first_name;

   
        insert objLead; 
        return 'Submitted Successfully';
        
  
        
    }  
}

解决方法

对于每个this answer,Lead对象上的标准必填字段为Company,LastName和Status,因此我不得不稍加更改您的班级。我还将返回的字符串移到一个常量,以使其也可以在测试类中使用。

@RestResource(urlMapping='/TestAPI')
global with sharing class TestingAPI {

    public static final String SUCCESS_MSG = 'Submitted Successfully';

    @HttpPost
    global static string doPost(String company,String lastName) {
        Lead objLead = new Lead();
        objLead.Company = company;
        objLead.LastName = lastName;

        insert objLead;
        return SUCCESS_MSG;
    }
}

为此的测试类可能类似于以下内容(覆盖率100%):

@IsTest
public class TestingAPITest {

    @IsTest
    static void test_doPost() {
        String company = 'Test Company';
        String lastName = 'TestName';
        String returnedStr = TestingAPI.doPost(company,lastName);

        System.assertEquals(TestingAPI.SUCCESS_MSG,returnedStr);

        Lead testLead = [
            SELECT Company,LastName
            FROM Lead
            LIMIT 1
        ];

        System.assertEquals(company,testLead.Company);
        System.assertEquals(lastName,testLead.LastName);
    }
}