Tips en bêste praktiken foar testen fan Salesforce-yntegraasjes

salesforce yntegraasje

Salesforce-testen sille jo helpe om jo oanpast te validearjen Yntegraasjes fan Salesforce en funksjonaliteiten mei oare applikaasjes foar bedriuwen. In goede test behannelt alle Salesforce-modules fan akkounts oant leads, fan kânsen oant rapporten, en fan kampanjes nei kontakten. Lykas it gefal is by alle tests is d'r in goede (effektive en effisjinte) manier om in Salesforce-test te dwaan en in minne manier. Dat, wat test Salesforce goede praktyk?

  • Brûk de Juste Test-ark - Salesforce-testen bart yn 'e browser as yn in eclipse-basearre omjouwing. Sawol de lêste browsers as de eklips hawwe geweldige feilsøkingsark en jo kinne dizze kombinearje mei testklassen foar heul nuttige resultaten. As jo ​​lykwols mear nedich binne, soe The Apex Interactive Debugger (of gewoan Apex) fan Force.com moatte wurde brûkt. Tink derom dat jo ek Salesforce Lightning Inspector, in chrome-útwreiding, kinne brûke om Salesforce Lightning spesifyk te testen. Apex is in Force.com platfoarm eigen programmeartaal dy't grutte oerienkomsten hat mei Java. It is in objektorientearre, haadlettergefoelige, sterk soart programmeartaal dy't krolhakjes folget en syntaksis fan puntnotaasje folget. Jo kinne Apex brûke om programmeare funksjes út te fieren tidens de measte Force.com-prosessen, ynklusyf oanpaste keppelings en knoppen, updates, wiskjen, en opnimmen fan ynfoegingshändels opnimme fia oanpaste controllers fan Visualforce-pagina of planning.
  • Konvinsjes foar nammejouwing brûke - Juste nammejouwing fan jo testmetoaden foardat jo begjinne mei it skriuwen fan tests is heul wichtich. De namme fan de testmetoade moat trije dielen hawwe. Dit binne nameOfMethod (namme fan 'e yndividuele metoade dy't jo testje, lykas ynfoegje / bywurkje / wiskje / wiskje by it testen fan in trigger, ynformaasje oer TestPath dy't fleksibel is, lykas nul kontakt as jo teste dat it kontakt nul is, en jildich by testen in posityf / negatyf paad.
  • Soargje foar 100% dekking - Hoewol de standert Salesforce-rjochtline is dat ienheidstest in dekking moat hawwe fan 75% fan jo koade (minus testklassen, oproppen nei System.debug en testmetoaden) en jo kinne gjin Apex-koade of AppExchange-apps ynsette, moatte jo betinke dat dit gewoan in standert is en jo doel 100% dekking moat wêze. Test alle positive / negative gefallen en foar gegevens dy't oanwêzich binne en net oanwêzich. Oare wichtige tips as it giet om koade-dekking binne:
    • Jo moatte tests útfiere om koade dekkingsnûmers te ferfarskjen, om't dizze getallen net wurde fernijd as de Apex-koade wurdt bywurke oant tests opnij binne.
    • As d'r in update is yn 'e organisaasje sûnt de lêste testútfiering, is it risiko dat de koade dekkingsnûmers ferkeard binne. Rin de tests opnij foar de juste skatting út.
    • It persintaazje persintaazjekoade omfettet gjin koadedekking fan testen fan behearde pakketten, mei de iennige útsûndering as dizze testen de triggers feroarsaakje.
    • Dekking is ôfhinklik fan it totale oantal koadlinen. As jo ​​rigels koade tafoegje of wiskje, dan sille jo it persintaazje beynfloedzje.
  • Testfallen yn klassen en kontrôles - Yn Salesforce-ûntwikkeling meitsje de measte ûntwikkelders aparte klassen en controller-bestannen foar elke funksje. Dit wurdt dien om kodearring mear organisearre, makliker, opnij te brûken en draachber te meitsjen. Jo moatte lykwols betinke dat hoewol dit makliker is, it net effisjinter is. Jo sille portabiliteit berikke as de testkoade yn 'e orizjinele klasse en controller-koade sels is, om't jo gjin testklasse misse as jo fan sânbak nei produksje migrearje.
  • Brûk System.assert () - Yn Apex, System.assert() wurdt brûkt om betingsten te kontrolearjen. Dit is in wichtige funksjonaliteit, om't jo kinne bepale as in bepaalde funksje troch de metoade is útfierd lykas ferwachte. Jo moatte System.assertEquals () en System.assertNotEquals () brûke tusken krityske funksjes helpt jo net allinich om te bepalen as de koade is útfierd sa't it moat, mar om der ek foar te soargjen dat gjin gegevens ferkeard wurde skreaun as de koade ferkeard giet.
  • ComprehensiveTest - Testen moat alles dekke. Jo moatte funksjonele testen, laden testen, feiligens testen, en ynset testen dwaan.
  • Ienheidstests - Jo moatte ienheidstests hawwe om te ferifiearjen dat yndividuele records it juste en ferwachte resultaat produsearje. Wylst jo in gigantyske test brûke dy't de heule koade behannelt, kin in goed idee lykje, tink derom dat de generearre resultaten hurder wêze sille om te debuggen en falen hurder te begripen wêze. In ienheidstest moat in lytse subset fan de funksjonaliteit dy't wurdt hifke dekke.
  • Bulk gefallen testje - In goede testkoade (trigger, útsûndering as klasse) kin oant inkele hûnderten records wurde belutsen (200 foar Apex). Jo moatte hjirfan profitearje en net allinich yndividuele records testen, mar ek bulksaken.
  • Positive toetsen - Test om te garandearjen as it ferwachte gedrach foarkomt troch alle ferwachte permutaasje. De test moat ferifiearje dat de brûker it formulier korrekt ynfolde en dat hy / sy net oer de limiten gie.
  • Negative toetsen - Test de negative gefallen om te soargjen dat flaterberjochten korrekt wurde produsearre. Foarbylden fan sokke negative gefallen kinne gjin negative bedragen oantsjutte en gjin takomstige datums kinne tafoegje. Negative toetsen binne wichtich, om't krekte ôfhanneling as dingen nei it suden it ferskil meitsje kinne.
  • Automatisearje testen - Tradysjoneel wie Salesforce-testen hantlieding. Jo moatte automatyske testen beskôgje, om't dit mear foardielen biedt. Dêr heart by:
    • Hânlieding testen makket jo gefoelich foar flaters, om't testen troch minsken is en net troch robots. Robots blinkt út by repetitive aktiviteiten wylst minsken flaters meitsje troch ferfeling, fermindere konsintraasje en konsistinsje, en in oanstriid om hoeken te besunigjen.
    • Hânlieding testen is werhellend, formulearjend en wurch. It testteam is better om wurk te dwaan dat ferkennender is.
  • Útfiere elke Code Logic Branch - By it brûken fan kondysjonele logika (as jo ternêre operators hawwe opnommen), moat elke tûke fan 'e koadelogika wurde útfierd.
  • Brûk unjildige en jildige yngongen foar oproppen nei metoaden - Oproppen nei metoaden moatte wurde makke mei sawol ûnjildige as jildige yngongen.
  • Folsleine tests - Soargje derfoar dat de tests mei sukses foltôgje - se moatte gjin útsûnderingen dwaan, útsein as de flaters wurde ferwachte. Hantearje alle fongen útsûnderingen - it fangen is net goed genôch.
  • Brûk ORDER BY kaaiwurden - Om te soargjen dat jo platen wurde weromjûn yn 'e folchoarder dy't jo se ferwachtsje, brûk de trefwurden ORDER BY.
  • Nim net oan dat record-ID's folchoarder binne regele - Mije de mienskiplike flater fan oannimme dat record-ID's yn opienfolgjende folchoarder binne regele. De ID's binne net yn opkommende folchoarder, útsein as jo meardere records hawwe ynfoege mei itselde fersyk.
  • Belje Test.startTest () en Test.stopTest () - As jo ​​in Apex-ienheidstest útfiere, krije jo mear dan de 75% koade dekking dy't ferplicht is yn Salesforce. Jo moatte stopTest skilje foar bewearingen om asynchrone koades te twingen dy't noch kinne draaie om te finishen. Fier nije fragen út foar definitive resultaten, om't oare koade gegevens feroarje kin. UsingTest.startTest () en Test.stopTest () soarget derfoar dat jo de test yn 'e grinzen fan' e gûverneur sandboxje. Op dizze manier sil de ynstallaasjekoade dy't jo brûke net bemuoie en jo falske negativen as positive posysjes jaan oer de limiten fan 'e gûverneur. Test.stopTest () soarget der ek foar dat @future-oproppen foltôgje foar testen.
  • Lêsberens - Lêsberens is heul wichtich yn ienheidstests. De testnammen moatte de spesifike aksje te nimmen en it ferwachte resultaat befetsje. De metoade moat beskriuwend en koart wêze. De metoade moat sa wêze dat it wer te brûken is oer ferskate tests.
  • Bouwe grutte testgegevensets foar startTest - Om't jo tests yn ferskate sânbak- en produksje-omjouwings rinne, bouwe grutte testdatasets foardat jo startTest skilje om te soargjen dat de test folsleine útfieringslimiten hat. Standert, Salesforce Github rint tests isolearre fan produksjegegevens. As jo ​​systeemgegevens nedich binne, lykas in profyl, freegje dan om it juste ding te krijen foar dy spesifike omjouwing.
  • Generearje jo eigen testgegevens - De testgegevens dy't jo brûke moatte wurde generearre yn 'e test. Jo kinne dizze gegevens generearje mei @testSetup-annotaasje en in TestUtils-klasse om net allinich te garandearjen dat jo de juste gegevens hawwe, mar om ek te garandearjen dat alle tests wurde útfierd op in sandbox foar ûntwikkelders sûnder fereaske foar gegevens.
  • Foarkom no-op AKA-null-operaasjes - In protte testers brûke no-op AKA null-operaasjes. Dit binne nutteleaze koades dy't neat dogge. Om't se al yn jo koadebasis sitte, sille se tafoegje oan jo persintaazje dekking.
  • Parallelle testútfiering - As jo ​​tests begjinne fanút de Salesforce-brûkersynterface of de Developer Console, sille de tests parallel rinne. Dit is in wichtige funksje om't it de testtiid rapper makket. Jo moatte lykwols betinke dat dit kin liede ta problemen mei gegevensbestriding en as jo tinke dat dit kin barre, skeakelje dan parallel út. De meast foarkommende oarsaken fan problemen mei gegevensbestriding dy't faak liede ta UNABLE_TO_LOCK_ROW flaters binne:
    • As testen bedoeld binne om deselde records tagelyk te aktualisearjen. Fernijen fan deselde records bart normaal as tests gjin eigen gegevens meitsje.
    • As d'r in deadlock is yn tests dy't parallel rinne en se besykje records te meitsjen mei oerienkommende wearden foar yndeksfjild. In deadlock sil foarkomme as 2 rinnende tests yn 'e wachtrijen binne om gegevens werom te rollen (dit komt foar as 2 testen ynfierrecords testen dy't deselde unike yndeksfjildwearden hawwe yn ferskillende oarders).
    • Om parallelle testútfiering út te skeakeljen, gean nei Setup, typ Apex Test yn, gean nei Apex Test Execution Options dialooch, selektearje Parallel Apex Testing útskeakelje, klikje op OK.

Utskeakelje parallel apex testen

Hiere in pro foar de baan, om't hy de ûnderfining en training nedich is om in goede test te dwaan, dy't jo ek frede fan 'e geast jout. In pro ynhiere kinne jo konsintrearje op jo kearnbedriuw. It besparret jo ek jild, om't jo gjin eigen team nedich binne foar de baan.

Wat tinksto?

Dizze side brûkt Akismet om spam te ferleegjen. Learje hoe't jo kommentaargegevens ferwurke wurde.