2012-04-09 13 views
1

mir jemand bitte helfen abdeckenden Code Testfall für 100% Codeabdeckung zu schreiben für folgende Trigger in ApexTestfall für Trigger (vor dem Einsetzen, vor der Aktualisierung) in Apex

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>'; 
    } 
    } 
} 

Und nicht in der Lage zu bekommen 100%

folgenden Testfall mit
@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; 

    E_Ticket__c et = new E_Ticket__c(); 
    et.Airline__c = 'Virgin Australia'; 
    et.Opportunity__c = oppNew.Id; 
    et.Airline__c = 'Virgin Atlantic'; 
    insert et; 

    E_Ticket__c etNew = [select Id, Airline__c from E_Ticket__c where Id = :et.Id]; 
    update etNew; 
} 
} 

wenn ich Klasse laufen -> Force.com -> Run Test zeigen es 100% Code Coverage

aber wenn ich Force.com tun -> mit Server bereitstellen es show error 6% abgedeckt

Jede Hilfe wäre

Dank ..

+0

Dies ist ein Duplikat von: http://StackOverflow.com/Questions/10073987/Test-Case-for-the-Rigger-in-Apex –

+0

Hallo Anil, bitte versuchen Sie und schreiben Sie den Code selbst, bevor andere bitten zu tun all die Arbeit für dich. Die Community ist viel eher bereit, bei bestimmten Problemen (Fehlern, auf die Sie stoßen, usw.) oder Best Practices für bestimmte Aufgaben zu helfen. Diese Frage wird abgelehnt, weil, wie es heißt, wenn der Pfeil nach unten gedrückt wird "Diese Frage zeigt keinerlei Forschungsaufwand ...". –

+0

@Matthew Ich schreibe den Testfall für Trigger, aber nicht 100% Code Abdeckung nach Brei kämpfen, so dass ich darum bin, um Hilfe zu bitten ... –

Antwort

3

Try this:

@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; 
    } 
} 

Stellen Sie außerdem sicher, dass benutzerdefinierte Objekte Spiel sowohl in der Sandbox und Bereitstellung/Produktionsserver.

+0

Danke viel @Matthew, werden Sie mir bitte ein paar Tipps zum Test Case schreiben, müssen wir alle anderen Bedingungen im Testfall abdecken? –

+1

@AnilD Schreiben Sie Testklassen, um die Ergebnisse zu bestätigen und zu bestätigen. Sie müssen nicht die Testklasse haben, um eine 100% ige Abdeckung zu erhalten. Aber der Hauptgrund für die Testklasse ist zu bestätigen, was Sie in Ihrem Auslöser/Klasse tun, funktioniert gut. wenn du sonst noch aussagen hättest hätte ich sicher alle diese abgedeckt. – Prady

+0

Prady ist richtig; Testklassen sollen bestätigen, dass Ihr Trigger oder Ihre Klasse korrekt funktioniert. Stellen Sie sicher, dass der Test den gesamten Code durchläuft und verwenden Sie "System.assertEquals" (http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_testing_example.htm), um sicherzustellen, dass alles funktioniert . –

3

Um das zu bekommen 100% Codeabdeckung zu erkennen ist, müssen Sie würde einen Test für jede „else if“ Anweisung schreiben.

Sie haben derzeit nur einen Test, für einen "else if."

+0

Danke @SuperNES, ich habe Ihren Punkt –