trigger ShipToAddress on Opportunity(before insert) {
map<id,account> accounts = new map<id,account>();
for(opportunity o:trigger.new) {
accounts.put(o.accountid,null);
}
accounts.remove(null);
accounts.putAll([select id,name,BillingStreet, BillingCity, BillingState, BillingPostalCode from account where id in :accounts.keyset()]);
for(opportunity o:trigger.new) {
if(accounts.containskey(o.accountid)) {
o.Ship_To_Address__c = accounts.get(o.accountid).BillingStreet + ', ' + accounts.get(o.accountid).BillingCity + ', ' + accounts.get(o.accountid).BillingState + ', ' + accounts.get(o.accountid).BillingPostalCode;
}
}
}
以上是我在沙盒环境中创建的触发器,然后转移到我的生产环境中。我是 Salesforce 新手,所以我不熟悉创建 Apex 触发器或类来测试我的 Apex 触发器。我不确定我需要在生产环境中的哪个位置创建一个类,因此我可以将代码覆盖率提高到 75%。我也不确定如何创建类或者我需要编写什么代码来创建类,所以我可以运行它并将我的代码覆盖率提高到 75%。请帮助我向我展示我需要在 Salesforce 中创建此代码的位置以及测试此触发器所需的代码。
我测试了触发器而无需在沙盒中进行验证,它工作得很好。
我能够将此代码部署到我的产品中并运行该类,但它没有验证我的触发器。我究竟做错了什么?
@isTest
public class ShipToAddress {
public static void TestOne(){
Account acc = new Account( Name='Test' ) ;
Insert acc;
ID acctID = acc.ID;
//insert opp
Opportunity opp = new Opportunity( Name='Test', AccountID = acctID, CloseDate = Date.newInstance(2016, 12, 9), StageName = 'Submitted' );
Insert opp;
}
}