Content Marketing

Tips och bästa metoder för testning av Salesforce-integrationer

Salesforce-test hjälper dig att validera din anpassade Salesforce-integrationer och funktioner med andra företagsapplikationer. Ett bra test täcker alla Salesforce-moduler från konton till leads, från möjligheter till rapporter och från kampanjer till kontakter. Som det är fallet med alla tester finns det ett bra (effektivt och effektivt) sätt att göra ett Salesforce-test och ett dåligt sätt. Så, vad testar Salesforce god praxis?

  • Använd rätt testverktyg - Salesforce-testning sker i webbläsaren eller i en eclipse-baserad miljö. Både de senaste webbläsarna och eclipse har fantastiska felsökningsverktyg och du kan kombinera dessa med testklasser för mycket hjälpsamma resultat. Men om du behöver mer ska Apex Interactive Debugger (eller helt enkelt Apex) från Force.com användas. Observera att du också kan använda Salesforce Lightning Inspector, en kromförlängning, för att specifikt testa Salesforce Lightning. Apex är en force.com plattformsspecifikt programmeringsspråk som har stora likheter med Java. Det är ett objektorienterat, skiftlägeskänsligt och starkt programmeringsspråk som följer lockiga parenteser och syntax för punktnotering. Du kan använda Apex för att utföra programmerade funktioner under de flesta Force.com-processer, inklusive anpassade länkar och knappar, uppdateringar, borttagningar och inspelning av insättningshändelser via Visualforce-sidans anpassade kontroller eller schemaläggning.
  • Använd konventioner om korrekt namngivning - Korrekt namngivning av dina testmetoder innan du börjar skriva är mycket viktigt. Testmetodens namn ska bestå av tre delar. Dessa är nameOfMethod (namnet på den enskilda metoden som du testar, t.ex. infoga / uppdatera / ta bort / återställa när du testar en trigger, information om TestPath som är flexibel, t.ex. nullkontakt om du testar att kontakten är null, och giltig vid testning en positiv / negativ väg.
  • Se till 100% täckning - Även om det vanliga Salesforce-direktivet är att enhetstest ska täcka 75% av din kod (minus testklasser, samtal till System.debug och testmetoder) och du inte kommer att kunna distribuera Apex-kod eller paket AppExchange-appar bör du notera att detta bara är en standard och att ditt mål ska vara 100% täckning. Testa alla positiva / negativa fall och för data som finns och inte finns. Andra viktiga tips när det gäller kodtäckning är:
    • Du bör köra tester för att uppdatera kodens täckningsnummer eftersom dessa nummer inte uppdateras när Apex-koden uppdateras tills testerna körs om.
    • Om det har skett en uppdatering i organisationen sedan den senaste testkörningen, finns det en risk att kodtäckningsnumren blir felaktiga. Kör om testerna för rätt uppskattning.
    • Kodtäckningsprocenten inkluderar inte kodtäckning från hanterade paketprov, med det enda undantaget när dessa test orsakar att utlösarna aktiveras.
    • Täckningen beror på det totala antalet kodrader. Om du lägger till eller tar bort rader med kod påverkar du procentsatsen.
  • Testfall i klasser och styrenheter - I Salesforce-utvecklingen skapar de flesta utvecklare separata klasser och styrfiler för varje funktion. Detta görs för att göra kodningen mer organiserad, enklare, återanvändbar och bärbar. Du bör dock notera att även om detta är enklare är det inte mer effektivt. Du kommer att uppnå portabilitet om testkoden finns i originalklassen och själva kontrollerkoden eftersom du inte missar någon testklass när du migrerar från sandlåda till produktion.
  • Använd System.assert () - I Apex, System.assert() används för att kontrollera villkoren. Detta är en viktig funktionalitet eftersom den låter dig avgöra om en viss funktion har utförts med metoden som förväntat. Du bör använda System.assertEquals () och System.assertNotEquals () mellan viktiga funktioner hjälper dig inte bara att avgöra om koden har körts som den ska, utan också att se till att inga data skrivs felaktigt om koden går fel.
  • Omfattande test - Testning bör täcka allt. Du bör göra funktionstestning, belastningstestning, säkerhetstestning och distributionstestning.
  • Enhetstester - Du bör göra enhetstester för att verifiera att enskilda poster ger rätt och förväntat resultat. Medan du använder ett gigantiskt test som täcker hela koden kan det verka som en bra idé, notera att de genererade resultaten blir svårare att felsöka och att misslyckandet blir svårare att förstå. Ett enhetstest bör täcka en liten delmängd av den funktionalitet som testas.
  • Testa bulkfall - En bra testkod (utlösare, undantag eller klass) kan vara involverad i upp till flera hundra poster (200 för Apex). Du bör dra nytta av detta och testa inte bara enskilda poster utan även bulkfall.
  • Positiva tester - Testa om det förväntade beteendet sker genom all förväntad permutation. Testet ska verifiera att användaren fyllt i formuläret korrekt och att han / hon inte gick över gränserna.
  • Negativa tester - Testa de negativa fallen för att säkerställa att felmeddelanden produceras korrekt. Exempel på sådana negativa fall är att inte kunna ange negativa belopp och att inte kunna lägga till framtida datum. Negativa tester är viktiga eftersom korrekt hantering när saker går söderut kan göra hela skillnaden.
  • Automatisera testning - Traditionellt var Salesforce-testning manuell. Du bör överväga automatiserad testning eftersom det ger fler fördelar. Dessa inkluderar:
    • Manuell testning gör dig mottaglig för misstag eftersom testning sker av människor och inte av robotar. Robotar utmärker sig vid repetitiva aktiviteter medan människor gör misstag på grund av tristess, minskad koncentration och konsistens och en tendens att skära hörn.
    • Manuell testning är repetitiv, formell och tröttsam. Testteamet är bättre att utföra arbete som är mer utforskande.
  • Kör varje kodlogikfilial - När du använder villkorlig logik (när du har inkluderat ternära operatorer) ska varje gren av kodlogiken köras.
  • Använd ogiltiga och giltiga ingångar för samtal till metoder - Samtal till metoder ska göras med både ogiltiga och giltiga ingångar.
  • Slutföra tester - Se till att testerna har slutförts framgångsrikt - de bör inte genom några undantag såvida inte felen förväntas. Hantera alla fångade undantag - att fånga dem är inte tillräckligt bra.
  • Använd ORDER BY Keywords - För att säkerställa att dina poster returneras i den ordning du förväntar dig dem, använd nyckelorden ORDER BY.
  • Antag inte att post-ID ordnas sekventiellt - Undvik det vanliga misstaget att anta att post-ID: n är ordnade i sekventiell ordning. ID: n är inte i stigande ordning, såvida du inte har lagt in flera poster med samma begäran.
  • Ring Test.startTest () och Test.stopTest () - När du kör ett Apex-enhetstest får du mer än 75% kodtäckning som är obligatorisk i Salesforce. Du bör ringa stoppTest före påståenden för att tvinga asynkrona koder som fortfarande kan köras för att slutföra. Kör nya frågor för slutresultat eftersom annan kod kan ändra data. UsingTest.startTest () och Test.stopTest () säkerställer att du sandboxar testet inom dess regulatorgränser. På det här sättet kommer installationskoden du använder inte att störa och ge dig falska negativ eller positiva effekter kring guvernörsgränserna. Test.stopTest () säkerställer också att @future-samtal slutförs för testning.
  • Läsbarhet - Läsbarhet är mycket viktigt i enhetstester. Testnamnen bör innehålla den specifika åtgärd som ska vidtas och det förväntade resultatet. Metoden ska vara beskrivande och kort. Metoden ska vara sådan att den kan återanvändas i olika tester.
  • Bygg stora testdatauppsättningar före startTest - Eftersom dina tester kommer att köras i olika sandlådor och produktionsmiljöer, skapa stora testdatauppsättningar innan du ringer startTest för att säkerställa att testet har fullständiga körgränser. Som standard, Salesforce Github kör test isolerade från produktionsdata. När du behöver systemdata som en profil, fråga för att få rätt sak för den specifika miljön.
  • Skapa dina egna testdata - Testdata du använder ska genereras i testet. Du kan generera dessa data med @testSetup-kommentar och en TestUtils-klass för att inte bara säkerställa att du har rätt data utan också för att säkerställa att alla tester körs på en sandbox för utvecklare utan krav på data.
  • Undvik icke-opererade AKA-nolloperationer - Många testare använder no-op AKA null-operationer. Det här är värdelösa koder som inte gör någonting. Eftersom de redan finns i din kodbas kommer de att lägga till din täckningsprocent.
  • Parallell testutförande - När du startar tester från Salesforce-användargränssnittet eller utvecklarkonsolen körs testerna parallellt. Detta är en viktig funktion eftersom det påskyndar testkörtiden. Du bör dock notera att detta kan leda till problem med datakonflikt och om du misstänker att detta kan hända, stäng av parallell körning. De vanligaste orsakerna till problem med datakonflikt som ofta leder till UNABLE_TO_LOCK_ROW-fel är:
    • När tester är avsedda att uppdatera samma poster samtidigt. Uppdatering av samma poster sker vanligtvis när tester inte skapar egna data.
    • När det finns en dödläge i tester som körs parallellt och de försöker skapa poster som har motsvarande indexfältvärden. Ett dödläge kommer att inträffa när två pågående tester har köat för att återföra data (detta inträffar när två tester ingångsposter som har samma unika indexfältvärden i olika ordningar).
    • För att inaktivera parallell testkörning, gå till Setup, gå in i Apex Test, gå till dialogrutan Apex Test Execution Options, välj Disable Parallel Apex Testing, klicka på OK.

Inaktivera parallell topptestning

Anställ ett proffs för jobbet eftersom han kommer att ha den erfarenhet och utbildning som krävs för att göra ett bra test, vilket också ger dig sinnesfrid. Att anställa ett proffs gör att du kan koncentrera dig på din kärnverksamhet. Det sparar också pengar eftersom du inte behöver ett internt team för jobbet.

Amar Kukreja

Amar Kukreja har många års erfarenhet av Salesforce-test. Han använder Apex liksom andra tester. Han erbjuder också andra relaterade Salesforce-tjänster, inklusive första Salesforce-installation och hantering. För att lära dig mer om Salesforce Github.

Relaterade artiklar

Tillbaka till toppen knappen
Stänga

Adblock upptäckt

Martech Zone kan ge dig detta innehåll utan kostnad eftersom vi tjänar pengar på vår webbplats genom annonsintäkter, affiliate-länkar och sponsring. Vi skulle uppskatta om du tar bort din annonsblockerare när du tittar på vår webbplats.