问题描述
我正在尝试将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);
}
}