Salesforce Apex中触发器的测试用例(插入前、更新前)

Salesforce Apex中触发器的测试用例(插入前、更新前),salesforce,apex-code,visualforce,Salesforce,Apex Code,Visualforce,任何人请帮助我编写测试用例,为apex中的以下触发器提供100%的代码覆盖率 trigger ETicketAirlineUrlTrigger on E_Ticket__c (before insert, before update) { for(E_Ticket__c etNew : Trigger.New) { if(etNew.Airline__c =='Virgin Australia') { etNew.Airlines_Url__c = '&

任何人请帮助我编写测试用例,为apex中的以下触发器提供100%的代码覆盖率

trigger ETicketAirlineUrlTrigger on E_Ticket__c (before insert, before update) {

  for(E_Ticket__c etNew : Trigger.New)
  {
    if(etNew.Airline__c =='Virgin Australia')
    {
        etNew.Airlines_Url__c = '<a href="http://www.virginaustralia.com/Personal/Bookings/Managebookings/index.htm">Virgin Australia</a>';
    }
    else if(etNew.Airline__c =='Virgin Atlantic')
    {
        etNew.Airlines_Url__c = '<a href="https://www.virgin-atlantic.com/en/us/manageyourflights/updatebooking/index.jsp">Virgin Atlantic</a>';
    }
    else if(etNew.Airline__c =='Virgin America')
    {
        etNew.Airlines_Url__c = '<a href="http://www.virginamerica.com/view-itinerary.html">Virgin America</a>';
    }
    else if(etNew.Airline__c =='US AIR')
    {
        etNew.Airlines_Url__c = '<a href="http://reservations.usairways.com/Default.aspx">US AIR</a>';
    }
    else if(etNew.Airline__c =='United Airlines')
    {
        etNew.Airlines_Url__c = '<a href="http://www.united.com/page/genericpage/0,,52172,00.html?navSource=dropDown&linkTitle=itineraries">United Airlines</a>';
    }
    else if(etNew.Airline__c =='Turkish Air')
    {
        etNew.Airlines_Url__c = '<a href="http://www4.thy.com/mybookings/reservations.tk?target=view&lang=en">Turkish Air</a>';
    }
    else if(etNew.Airline__c =='Thai Air')
    {
        etNew.Airlines_Url__c = '<a href="http://www.thaiair.com/AWR_PREM/view-trip.jsp">Thai Air</a>';
    }
    else if(etNew.Airline__c =='Swiss Airlines')
    {
        etNew.Airlines_Url__c = '<a href="http://www.swiss.com/web/EN/Pages/index.aspx?Country=US">Swiss Airlines</a>';
    }
    else if(etNew.Airline__c =='Southwest Airlines')
    {
        etNew.Airlines_Url__c = '<a href="https://www.southwest.com/flight/lookup-air-reservation.html?int=GSUBNAV-AIR-RETRIEVE&forceNe...">Southwest Airlines</a>';
    }
    else if(etNew.Airline__c =='South African')
    {
        etNew.Airlines_Url__c = '<a href="https://www.flysaa.com/Journeys/reservation/searchpnr.action?nameSpace=reservation">South African</a>';
    }
    else if(etNew.Airline__c =='Singapore Airlines')
    {
        etNew.Airlines_Url__c = '<a href="https://www.singaporeair.com/manageBooking-flow.form?execution=e1s1">Singapore Airlines</a>';
    }
    else if(etNew.Airline__c =='QATAR AIRWAYS')
    {
        etNew.Airlines_Url__c = '<a href="http://www.qatarairways.com/us/en/homepage.page">QATAR AIRWAYS</a>';
    }
    else if(etNew.Airline__c =='Qantas Airlines')
    {
        etNew.Airlines_Url__c = '<a href="http://www.qantas.com.au/travel/airlines/your-booking/global/en">Qantas Airlines</a>';
    }
    else if(etNew.Airline__c =='Malaysia')
    {
        etNew.Airlines_Url__c = '<a href="https://book.malaysiaairlines.com/itd/itd/lang/en/reservations">Malaysia</a>';
    }
    else if(etNew.Airline__c =='Lufthansa')
    {
        etNew.Airlines_Url__c = '<a href="http://www.lufthansa.com/online/portal/lh/us/my_account/my_bookings">Lufthansa</a>';
    }
    else if(etNew.Airline__c =='KLM - Royal Dutch Airlines')
    {
        etNew.Airlines_Url__c = '<a href="http://www.klm.com/travel/us_en/index.htm#tab=db_mmb">KLM - Royal Dutch Airlines</a>';
    }
    else if(etNew.Airline__c =='Japan Air')
    {
        etNew.Airlines_Url__c = '<a href="http://www.5971.jal.co.jp/eng/SearchReservation.do">Japan Air</a>';
    }
    else if(etNew.Airline__c =='Etihad Airlines')
    {
        etNew.Airlines_Url__c = '<a href="http://www.etihadairways.com/sites/etihad/_layouts/etihad/obe/RetrieveBooking.aspx">Etihad Airlines</a>';
    }
    else if(etNew.Airline__c =='Emirates')
    {
        etNew.Airlines_Url__c = '<a href="https://fly.emirates.com/MYB/MMBLogin.aspx">Emirates</a>';
    }
    else if(etNew.Airline__c =='Delta Airlines')
    {
        etNew.Airlines_Url__c = '<a href="http://www.delta.com/">Delta Airlines</a>';
    }
    else if(etNew.Airline__c =='Copa Airlines')
    {
        etNew.Airlines_Url__c = '<a href="http://www.copaair.com/sites/US/EN/Pages/homepage.aspx">Copa Airlines</a>';
    }
    else if(etNew.Airline__c =='Continental Airlines')
    {
        etNew.Airlines_Url__c = '<a href="http://www.continental.com/web/en-US/apps/reservation/default.aspx">Continental Airlines</a>';
    }
    else if(etNew.Airline__c =='Cathay Pacific')
    {
        etNew.Airlines_Url__c = '<a href="http://www.cathaypacific.com/cpa/en_US/manageyourtrip/managemybooking?loginType=nonmember">Cathay Pacific</a>';
    }
    else if(etNew.Airline__c =='British Airways')
    {
        etNew.Airlines_Url__c = '<a href="http://www.britishairways.com/travel/home/public/en_us">British Airways</a>';
    }
    else if(etNew.Airline__c =='American Airlines')
    {
        etNew.Airlines_Url__c = '<a href="https://www.aa.com/reservation/findReservationAccess.do">American Airlines</a>';
    }
    else if(etNew.Airline__c =='All Nippon')
    {
        etNew.Airlines_Url__c = '<a href="https://aswbe-i.ana.co.jp/p_per/sky_ip_per_jp/preReConfirmSearchPnr.do?CONNECTION_KIND=LAX&LA...">All Nippon</a>';
    }
    else if(etNew.Airline__c =='Alitalia')
    {
        etNew.Airlines_Url__c = '<a href="http://www.alitalia.com/US_EN/home/index.aspx">Alitalia</a>';
    }
    else if(etNew.Airline__c =='Alaska Airlines')
    {
        etNew.Airlines_Url__c = '<a href="https://www.alaskaair.com/booking/ssl/saved/ViewPnr.aspx">Alaska Airlines</a>';
    }
    else if(etNew.Airline__c =='Air New Zealand')
    {
        etNew.Airlines_Url__c = '<a href="https://flightbookings.airnewzealand.com/isbook_en_US/review/initNewWebCheckIn.do?workflowAction=...">Air New Zealand</a>';
    }
    else if(etNew.Airline__c =='Air France')
    {
        etNew.Airlines_Url__c = '<a href="https://www.airfrance.us/cgi-bin/AF/US/en/local/process/standard/rebooking/SearchPnrRbkAction.do?">Air France</a>';
    }
    else if(etNew.Airline__c =='Air Canada')
    {
        etNew.Airlines_Url__c = '<a href="http://www.aircanada.com/aco/manageMyBookings.do">Air Canada</a>';
    }
  }
}
当我运行Class-->Force.com-->run Test时,它会显示100%的代码覆盖率

但当我将Force.com-->部署到服务器时,它会显示覆盖了6%的错误

任何帮助都将不胜感激


谢谢..

为了获得100%的代码覆盖率,您需要为每个“else-if”语句编写一个测试


您当前只有一个测试,针对一个“elseif”。

为了获得100%的代码覆盖率,您需要为每个“elseif”语句编写一个测试

您当前只有一个测试,一个测试为“如果”。

尝试:

@isTest
private class ETicketAirlineUrlTestCase {

    static testMethod void myUnitTest() {
        Opportunity oppNew =  new Opportunity();
        oppNew.Name = 'Test Opp';
        oppNew.StageName = 'To Be Searched';
        oppNew.CloseDate = System.now().date();
        insert oppNew;

        List<E_Ticket__c> tickets = new List<E_Ticket__c>();

        E_Ticket__c et1 =  new E_Ticket__c();
        et1.Airline__c = 'Virgin Australia';
        et1.Opportunity__c = oppNew.Id;
        tickets.add(et1);

        E_Ticket__c et2 =  new E_Ticket__c();
        et2.Airline__c = 'Virgin Atlantic';
        et2.Opportunity__c = oppNew.Id;
        tickets.add(et2);

        // ...
        // add as many tickets needed for all Airlines
        // ...

        insert tickets;
        update tickets;
    }
}
@isTest
私有类IRlineUrlTestCase{
静态测试方法void myUnitTest(){
Opportunity oppNew=新的Opportunity();
oppNew.Name='testopp';
oppNew.StageName='待搜索';
oppNew.CloseDate=System.now().date();
插入新的;
列表票证=新列表();
E_-Ticket_uu-c et1=新E_-Ticket_u-c();
et1.Airline_uuc=‘维珍澳大利亚’;
et1.Opportunity\uuu c=oppNew.Id;
门票。增加(et1);
E_Ticket_uuc et2=新E_Ticket_uc();
et2.Airline_uuc=‘维珍大西洋航空’;
et2.Opportunity\uuu c=oppNew.Id;
门票。增加(et2);
// ...
//添加所有航空公司所需的机票
// ...
插入门票;
更新门票;
}
}
另外,请确保沙箱和部署/生产服务器中的自定义对象都匹配。

尝试以下操作:

@isTest
private class ETicketAirlineUrlTestCase {

    static testMethod void myUnitTest() {
        Opportunity oppNew =  new Opportunity();
        oppNew.Name = 'Test Opp';
        oppNew.StageName = 'To Be Searched';
        oppNew.CloseDate = System.now().date();
        insert oppNew;

        List<E_Ticket__c> tickets = new List<E_Ticket__c>();

        E_Ticket__c et1 =  new E_Ticket__c();
        et1.Airline__c = 'Virgin Australia';
        et1.Opportunity__c = oppNew.Id;
        tickets.add(et1);

        E_Ticket__c et2 =  new E_Ticket__c();
        et2.Airline__c = 'Virgin Atlantic';
        et2.Opportunity__c = oppNew.Id;
        tickets.add(et2);

        // ...
        // add as many tickets needed for all Airlines
        // ...

        insert tickets;
        update tickets;
    }
}
@isTest
私有类IRlineUrlTestCase{
静态测试方法void myUnitTest(){
Opportunity oppNew=新的Opportunity();
oppNew.Name='testopp';
oppNew.StageName='待搜索';
oppNew.CloseDate=System.now().date();
插入新的;
列表票证=新列表();
E_-Ticket_uu-c et1=新E_-Ticket_u-c();
et1.Airline_uuc=‘维珍澳大利亚’;
et1.Opportunity\uuu c=oppNew.Id;
门票。增加(et1);
E_Ticket_uuc et2=新E_Ticket_uc();
et2.Airline_uuc=‘维珍大西洋航空’;
et2.Opportunity\uuu c=oppNew.Id;
门票。增加(et2);
// ...
//添加所有航空公司所需的机票
// ...
插入门票;
更新门票;
}
}

另外,请确保您的沙箱和部署/生产服务器中的自定义对象都匹配。

这是:嗨,Anil,请尝试自己编写代码,然后再让其他人为您完成所有工作。社区更有可能帮助解决特定问题(您遇到的错误等)或特定任务的最佳实践。这个问题被否决了,因为当鼠标滑过向下的投票箭头时,它说“这个问题没有显示任何研究成果……”。Matthew我为trigger编写了测试用例,但在经历了激烈的斗争后没有得到100%的代码覆盖率,所以我请求任何帮助……你能在问题中发布你的代码吗?这会有帮助的。@Matthew,我编辑了这个问题,很抱歉在完整的问题中。这是一个重复的:嗨,Anil,请尝试自己编写代码,然后再让其他人为你做所有的工作。社区更有可能帮助解决特定问题(您遇到的错误等)或特定任务的最佳实践。这个问题被否决了,因为当鼠标滑过向下的投票箭头时,它说“这个问题没有显示任何研究成果……”。Matthew我为trigger编写了测试用例,但在经历了激烈的斗争后没有得到100%的代码覆盖率,所以我请求任何帮助……你能在问题中发布你的代码吗?那会有帮助的。@Matthew,我编辑了这个问题,很抱歉完整的问题。。非常感谢@Matthew,你能给我一些关于编写测试用例的提示吗?我们需要涵盖测试用例中的所有if-else条件吗?@AnilD编写测试类来确认和断言结果。不要让测试类只覆盖100%。但是测试类的主要原因是确认您在触发器/类中所做的工作是否正常。如果你有if else陈述,那么我肯定会涵盖所有这些;测试类用于确认触发器或类是否正常工作。请确保测试贯穿您的所有代码,并使用以确保一切正常。非常感谢@Matthew,您能给我一些关于编写测试用例的提示吗?我们是否需要涵盖测试用例中的所有if-else条件?@AnilD编写测试类来确认和断言结果。不要让测试类仅仅覆盖100%。但是测试类的主要原因是确认您在触发器/类中所做的工作是否正常。如果你有if else陈述,那么我肯定会涵盖所有这些;测试类用于确认触发器或类是否正常工作。确保测试在所有代码中运行,并使用以确保一切正常。