Cunsiglii è Best Pratiche per Pruvà Integrazioni Salesforce

integrazione salesforce

E prove di Salesforce vi aiuterà à validà u vostru persunalizatu Integrazioni Salesforce e funziunalità cù altre applicazioni d'impresa. Una bona prova copre tutti i moduli Salesforce da conti à lead, da opportunità à rapporti, è da campagne à contatti. Cum'è u casu di tutte e prove, ci hè un bonu modu (efficace è efficiente) per fà un test Salesforce è un cattivu modu. Allora, chì hè Salesforce chì prova e pratiche bone?

  • Aduprate i Strumenti di Pruvenza Diretti - E prove di Salesforce accadenu in u navigatore o in un ambiente basatu nantu à l'eclissi. Sia l'ultimi navigatori sia l'eclissi anu ottimi strumenti di debugging è pudete combine questi cun classi di test per risultati assai utili. Tuttavia, se ne avete bisognu di più, u Apex Interactive Debugger (o semplicemente Apex) da Force.com deve esse adupratu. Nota chì pudete ancu aduprà Salesforce Lightning Inspector, una estensione chrome, per testà specificamente Salesforce Lightning. Apex hè un Force.com linguaghju di prugrammazione pruprietariu di piattaforma chì presenta grandi similitudini cù Java. Hè un ughjettu orientatu à l'ughjettu, insensibile à e maiuscule, tippu assai u linguaghju di prugrammazione chì seguita a parentesi riccia è a sintassi di notazione di punti. Pudete aduprà Apex per eseguisce e funzioni prugrammate durante a maiò parte di i prucessi Force.com, cumprese ligami persunalizati è buttoni, aghjurnamenti, eliminazioni, è gestisce l'evenimentu d'inserzione di registrazioni attraversu a pagina Visualforce cuntrolli persunalizati o pianificazione.
  • Aduprà Cunvenzioni di Naming Proper - Una nomina curretta di i vostri metudi di prova prima di inizià à scrive testi hè assai impurtante. U nome di u metudu di prova deve avè trè parti. Quessi sò nameOfMethod (nome di u metudu individuale chì state testendu cume inserisce / aggiornà / cancellà / annullà quandu si prova un trigger, informazioni nantu à TestPath chì hè flessibile cume u cuntattu nulu se si prova chì u cuntattu hè nulu, è valevule quandu si prova un percorsu pusitivu / negativu.
  • Assicurà una Copertura 100% - Ancu se a direttiva Salesforce standard hè chì a prova unitaria deve avè una copertura di u 75% di u vostru còdice (minus classi di test, chjamate à System.debug è metudi di prova) è ùn puderete micca implementà u codice Apex o appiccicà app AppExchange, duvete nutate chì questu hè solu un standard è u vostru scopu deve esse una copertura à 100%. Pruvate tutti i casi pusitivi / negativi è per i dati prisenti è micca prisenti. Altri suggerimenti impurtanti quandu si tratta di copertura di codice sò:
    • Duvete fà testi per rinfrescà i numeri di copertura di i codici postu chì questi numeri ùn sò micca rinfrescati quandu u codice Apex hè aggiornatu finu à chì i testi sò ripetuti.
    • S'ellu ci hè statu un aghjurnamentu in l'urganizazione dapoi l'ultima prova, ci hè u risicu chì i numeri di cupertura di codice sianu sbagliati. Ripetite e prove per a stima curretta.
    • A percentuale di copertura di i codici ùn include micca a copertura di i codici da i testi di pacchetti gestiti, cù a sola eccezione chì hè quandu questi testi causanu u disparatore.
    • A copertura dipende da u numeru totale di linee di codice. Se aghjunghjite o sguassate e linee di codice, affettarete a percentuale.
  • Casi di prova in Classi è Controllori - In u sviluppu Salesforce, a maiò parte di i sviluppatori creanu classi separati è file di controller per ogni funzione. Questu hè fattu per fà a codificazione più organizata, più faciule, riutilizabile è purtabile. Duvete, tuttavia, nutà chì mentre questu hè più faciule, ùn hè micca più efficiente. Riuscirete à portabilità se u codice di prova hè in a classa originale è u codice di cuntrollu stessu postu chì ùn vi mancherà alcuna classe di test quandu migrarete da u sandbox à a produzzione.
  • Aduprà System.assert () - In Apex, System.assert() hè adupratu per verificà e cundizioni. Questa hè una funziunalità impurtante postu chì permette di determinà se una funzione particulare hè stata svolta da u metudu cum'è previsto. Duvete aduprà System.assertEquals () è System.assertNotEquals () trà e funzionalità critiche ùn vi aiuta micca solu à determinà se u codice hè statu eseguitu cum'ellu si deve, ma per assicurà ancu chì nisun dati sia scrittu erroneamente se u codice va male.
  • Prughjettu Comprehensive - A prova deve copre tuttu. Duvete fà testi funzionali, test di carica, test di sicurezza è test di dispiegamentu.
  • Prove di Unità - Duvete avè testi unitari per verificà chì i registri individuali producenu u risultatu currettu è previstu. Mentre aduprate un test gigante chì copre tuttu u codice pò sembrà una bona idea, nutate chì i risultati generati saranu più difficiuli da debug è u fallimentu serà più difficiule da capisce. Un test unitariu deve copre un picculu sottogruppu di e funzionalità testate.
  • Casi Testu à Bulk - Un bon codice di prova (trigger, eccezione, o classa) pò esse implicatu per parechje centinaia di registri (200 per Apex). Duvete prufittà di questu è testà micca solu registri individuali, ma ancu casi in quantità.
  • Testi Pusitivi - Pruvate per assicurà se u cumpurtamentu previstu accade cù tutta a permutazione prevista. U test deve verificà chì l'utente hà riempitu currettamente u modulu è chì ùn hà micca passatu i limiti.
  • Prove Negative - Pruvate i casi negativi per assicurà chì i messaghji d'errore sò prudutti currettamente. Esempii di tali casi negativi ùn ponu micca specificà quantità negative è ùn ponu micca aghjunghje date future. I test negativi sò impurtanti perchè a manipolazione curretta quandu e cose vanu versu u sud ponu fà a differenza.
  • Test di Automate - Tradizionalmente, e prove Salesforce eranu manuali. Duvete cunsiderà test automatizati chì questu offre più vantaghji. Questi includenu:
    • A prova manuale vi face suscettibile à l'errori postu chì a prova hè fatta da l'omu è micca da i robot. I robot eccellenu in attività ripetitive mentre l'umani commettenu errori per via di noia, di concentrazione è di consistenza ridotte, è di una tendenza à taglià i cantoni.
    • U test manuale hè ripetitivu, formulicu è stancu. A squadra di prova hè megliu à fà un travagliu chì hè più esplorativu.
  • Esegue ogni Codice Logic Branch - Quandu si usa logica cundizionale (quandu avete inclusu operatori terarii), ogni ramu di a logica di codice deve esse eseguitu.
  • Aduprate Input invalidi è Validi per Chjamate à Metodi - Chjamate à i metudi devenu esse fatte aduprendu sia input invalidi sia validi.
  • Testi cumpleti - Assicuratevi chì i testi si cumplettanu cù successu - ùn devenu micca attraversu alcuna eccezione à menu chì l'errori sò previsti. Gestite tutte e eccezioni catturate - catturalli ùn hè micca abbastanza bonu.
  • Aduprà ORDINE PER Parolle Chjave - Per assicurà chì i vostri registri sò restituiti in l'ordine chì li aspettate, aduprate l'ORDINAZIONE DI e parole chjave.
  • Ùn Assumite micca chì l'ID di Registru sò Disposti Sequenzialmente - Evite u sbagliu cumunu di suppone chì l'ID di record sò disposti in ordine sequenziale. L'ID ùn sò micca in ordine crescente, a menu chì ùn abbiate inseritu più registri cù a stessa richiesta.
  • Chjamate Test.startTest () è Test.stopTest () - Quandu eseguite un test di unità Apex, uttene più di a copertura di u codice 75% chì hè obbligatoria in Salesforce. Duvete chjamà stopTest prima di affirmazioni per forzà codici asincroni chì puderebbenu esse in esecuzione per finisce. Eseguite dumande fresche per risultati finali postu chì altru codice puderia cambià dati. UsingTest.startTest () è Test.stopTest () vi assicura u sandbox di a prova in i so limiti di guvernatore. In questu modu, u codice di installazione chì aduprate ùn interferirà micca è vi darà falsi negativi o positivi intornu à i limiti di u guvernatore. Test.stopTest () assicura ancu chì e chjamate @future si cumpletanu per pruvà.
  • Legibilità - A leghjibilità hè assai impurtante in i testi unità. I nomi di i testi devenu cuntene l'azzione specifica da fà è u risultatu previstu. U metudu deve esse descrittivu è cortu. U metudu deve esse tale chì pò esse riutilizzabile in diversi test.
  • Custruisce Grandi Gruppi di Dati di Test prima di startTest - Siccomu i vostri testi saranu in esecuzione in diversi ambienti di sandbox è di produzione, custruite grandi set di dati di test prima di chjamà startTest per assicurà chì u test abbia pieni limiti di esecuzione. Per difettu, Salesforce Github esegue testi isolati da i dati di produzione. Quandu avete bisognu di dati di sistema cum'è un Profilu, dumandate per uttene u dirittu per quellu ambiente specificu.
  • Generate i vostri dati di prova - I dati di prova chì aduprate devenu esse generati in u test. Pudete generà questi dati aduprendu annotazione @testSetup è una classe TestUtils per non solu assicurà chì avete i dati adatti, ma ancu per assicurà chì tutte e prove sò eseguite nantu à un sandbox di sviluppatore senza esigenza di dati.
  • Evite operazioni nulle AKA senza operazione - Parechji tester utilizanu operazioni nulla AKA senza operazione. Si tratta di codici inutili chì ùn facenu nunda. Siccomu sò dighjà in a vostra basa di codice, aghjunghjeranu à a vostra percentuale di cupertura.
  • Esecuzione di Test Parallelu - Quandu si principianu i testi da l'interfaccia utente di Salesforce o da a Consola di Sviluppatore, i testi seranu eseguiti in parallelu. Questa hè una caratteristica impurtante perchè accelera u tempu di prova. Duvete, tuttavia, nutà chì questu pò purtà à prublemi di cuntestazione di dati è se sospettate chì questu pò accadere, spegne l'esecuzione parallela. E cause più cumuni di prublemi di cuntestazione di dati chì spessu portanu à errori UNABLE_TO_LOCK_ROW sò:
    • Quandu i testi sò destinati à aghjurnà i stessi registri in u stessu tempu. L'aghjurnamentu di i listessi registri accade di solitu quandu e prove ùn creanu micca i so dati.
    • Quandu ci hè un impasse in i testi chì sò in esecuzione in parallelu è cercanu di creà registri chì anu valori di campu d'indice currispondenti. Un impasse si produrrà quandu 2 test in esecuzione sò in coda per ripristinà i dati (questu accade quandu 2 testi di registrazioni di input chì anu i stessi valori di campu d'indice unicu in ordini diversi).
    • Per disattivà l'esecuzione di test paralleli, andate in Configurazione, inserite Apex Test, andate in Apex Test Execution Options dialog, selezziunate Disable Parallel Apex Testing, cliccate OK.

Disattivate Test Apex Paralleli

Assumite un prufessiunale per u travagliu postu chì averà l'esperienza è a furmazione necessaria per fà una bona prova, chì vi dà ancu tranquillità. Assicurà un prufessiunale vi permette di cuncentrazione in u vostru core business. Vi risparmia dinò soldi postu chì ùn averete micca bisognu di una squadra in casa per u travagliu.

Chì ne pensi?

Stu situ utilizeghja Akismet per reducisce u puzzicheghju. Sapete ciò chì i dati di i vostri dati è processatu.