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;
}
}
}
以上是我在Sandbox中创建的触发器,然后转移到我的生产环境。我是Salesforce的新手,所以我是新手创建Apex Triggers或类来测试我的Apex触发器。我不确定在生产环境中我需要去哪里创建一个类,所以我可以将代码覆盖率提高到75%。我也不确定如何创建类或我需要编写什么代码来创建类,所以我可以运行它并使我的代码覆盖率达到75%。请帮我向我展示我需要在Salesforce中创建此代码以及测试此触发器所需的代码。
我测试了触发器而无需在Sandbox中进行验证,它运行得很好。
我能够将此代码部署到我的Prod中并运行该类,但它没有验证我的触发器。我究竟做错了什么?
@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;
}
}
答案 0 :(得分:0)
您需要创建一个
的测试类测试类的示例
@isTest
Public class myTestClass{
static testmethid void unitTest1() {
//insert an account
//insert opp
}
}
在此之后,你的触发器将被100%覆盖。
答案 1 :(得分:0)