Salesforce Apex Web 服务测试 class 错误
Salesforce Apex web service test class error
我正在使用 Salesforce Apex Web 服务创建记录。下面是我写的 apex 网络服务 class:
global class createCloudRecord {
global class projectInputs{
webService Integer ProjectID;
webService String ProjectName;
}
webService static Boolean createSFRecords(List<projectInputs> inputs) {
cv__Designation__c desg = new cv__Designation__c();
desg.cv__Active__c = true;
desg.cv__Default__c = false;
desg.cv__Description__c = 'Test Desc';
desg.OwnerId = '002B0000000K9soIAD';
desg.Name = inputs[0].ProjectName;
desg.cv__ExternalId__c = string.valueof(inputs[0].ProjectID);
insert desg;
return true;
}
}
它工作正常并通过 SOAP API 调用在 SF 云上创建记录。现在我必须为上面的 Web 服务编写测试 class,代码覆盖率至少为 75%。
下面是我为测试编写的代码 class:
@isTest
private class createCloudRecordTest {
static testMethod void testCreateSFRecords() {
createCloudRecord.projectInputs project = new createCloudRecord.projectInputs();
project.ProjectID = 12345;
project.ProjectName = 'TestProject';
createCloudRecord.createSFRecords(project);
}
}
但这行显示错误 createCloudRecord.createSFRecords(project);
:
Error: Compile Error: Method does not exist or incorrect signature.
任何人都知道我怎样才能让它工作。
谢谢!
我找到了问题的答案。问题出在我的 Web 服务中,我将参数定义为列表,但在上面的测试中 class 我将参数作为单个记录传递。
所以它应该像下面这样:
@isTest
private class createCloudRecordTest {
static testMethod void testCreateSFRecords() {
createCloudRecord.projectInputs project = new createCloudRecord.projectInputs();
project.ProjectID = 12345;
project.ProjectName = 'TestProject';
list<createCloudRecord.projectInputs> projects = new list<createCloudRecord.projectInputs>();
projects.add(project);
createCloudRecord.createSFRecords(projects);
}
}
我正在使用 Salesforce Apex Web 服务创建记录。下面是我写的 apex 网络服务 class:
global class createCloudRecord {
global class projectInputs{
webService Integer ProjectID;
webService String ProjectName;
}
webService static Boolean createSFRecords(List<projectInputs> inputs) {
cv__Designation__c desg = new cv__Designation__c();
desg.cv__Active__c = true;
desg.cv__Default__c = false;
desg.cv__Description__c = 'Test Desc';
desg.OwnerId = '002B0000000K9soIAD';
desg.Name = inputs[0].ProjectName;
desg.cv__ExternalId__c = string.valueof(inputs[0].ProjectID);
insert desg;
return true;
}
}
它工作正常并通过 SOAP API 调用在 SF 云上创建记录。现在我必须为上面的 Web 服务编写测试 class,代码覆盖率至少为 75%。
下面是我为测试编写的代码 class:
@isTest
private class createCloudRecordTest {
static testMethod void testCreateSFRecords() {
createCloudRecord.projectInputs project = new createCloudRecord.projectInputs();
project.ProjectID = 12345;
project.ProjectName = 'TestProject';
createCloudRecord.createSFRecords(project);
}
}
但这行显示错误 createCloudRecord.createSFRecords(project);
:
Error: Compile Error: Method does not exist or incorrect signature.
任何人都知道我怎样才能让它工作。
谢谢!
我找到了问题的答案。问题出在我的 Web 服务中,我将参数定义为列表,但在上面的测试中 class 我将参数作为单个记录传递。
所以它应该像下面这样:
@isTest
private class createCloudRecordTest {
static testMethod void testCreateSFRecords() {
createCloudRecord.projectInputs project = new createCloudRecord.projectInputs();
project.ProjectID = 12345;
project.ProjectName = 'TestProject';
list<createCloudRecord.projectInputs> projects = new list<createCloudRecord.projectInputs>();
projects.add(project);
createCloudRecord.createSFRecords(projects);
}
}