gpt4 book ai didi

java - Salesforce:调用方法并将联系人与 apex 测试方法的帐户相关联?

转载 作者:行者123 更新时间:2023-11-28 21:33:16 24 4
gpt4 key购买 nike

我编写了一个 Apex Scheduler,可以在员工生日前 2 天向经理发送电子邮件通知。

我已经在沙箱中对其进行了测试,我已准备好投入生产。但是,我无法通过我的测试方法获得代码覆盖率。

我的 Apex 调度程序类使用 SOQL 语句来识别帐户名称为“我们的公司”并且在 2 天内过生日的联系人。

我已经在我的测试方法中创建了一个帐户和联系人记录。

我需要将我的帐户和联系人记录链接/关联在一起。 (contact是我创建的account的,我知道跟ID有关系,accountId不能写。

我想我需要创建一个帐户变量并将其分配给 contactID...我已经尝试过代码示例,但它们不起作用。 Salesforce 认为我正在尝试写入您无法执行的联系人 ID。具体来说:

 Contact testContact = new Contact();
testContact.firstName='Jack';
testContact.lastName='Dell';
AccountID = testAccount.id;

如何创建帐户变量?

另一个问题是调用我的 sendBirthdayEmail(); 方法。

编写 testContact.sendBirthdayEmail();不调用我的电子邮件方法。相反,我收到一条错误消息“错误:编译错误:SObject 联系人的无效字段 ContactID”。

为什么我的测试方法不能识别我的 sendBirthdayEmail 方法?测试方法是否不理解我类(class)中的其他方法?

global class BirthdayName implements Schedulable{ 
global void execute (SchedulableContext ctx)
{

sendBirthdayEmail();

}
public void sendBirthdayEmail()
{

for(Contact con : [SELECT name, Id, Birthdate FROM Contact WHERE Next_Birthday__c = : system.Today().addDays(2) AND Account.Name = 'Our Company'])

{
String conId = con.Id;
String conName = con.name;
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();


mail.setTargetObjectId('005J0000000JWYx');

mail.setsubject('Birthday Reminder');
mail.setHtmlBody('This is a scheduler-generated email to notify you that the birthday of Name: <b> ' + con.name + ' </b> is in two days. Birthdate of: ' + con.Birthdate + '. Please wish them a happy Birthday.');
mail.setSaveAsActivity(false);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail });
}

}

static testMethod void myTestBirthday() {

//create the required test data needed for the test scenario
//In this case, I need to create a new contact, with the account name of Our Company and has a birthday 2 days away

Account testAccount = new Account(name='Our Company');
insert testAccount;


// creating new contact
Contact testContact = new Contact();
testContact.firstName='Jack';
testContact.lastName='Dell';
// TRYING to make this contact associated with the account by setting the account id of the account I just created to the contact
AccountID = testAccount.id;

// inserting test contact

insert testContact;

testContact.birthdate=system.Today().addDays(2);

update testContact;

testContact.sendBirthdayEmail();


}



}

请帮助我,我已经阅读了文档并搜索了留言板,但我仍然卡住了。感谢您的帮助!

最佳答案

尝试将 testAccount.Id 分配给 testContact.Account:

testContact.account = testAccount.Id;

代替 AccountID = testAccount.Id;

希望这对您有所帮助!

阿努普

关于java - Salesforce:调用方法并将联系人与 apex 测试方法的帐户相关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11764979/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com