SlideShare a Scribd company logo
1 of 51
19 Maggio 2022
MILANO MuleSoft Meetup Group
L’importanza del Testing e la sua automazione - Paolo Petronzi
Tips & Tricks per l’integrazione con Salesforce - Luca Bonaldo
MuleSoft Meetup Milano – Paolo Umberto Petronzi, Software Architect
L'importanza del Testing
e la sua automazione
Agenda
1. Introduzione
2. MUnit
3. Tips & Tricks
4. Conclusioni
1 - Introduzione
Introduzione
Tipi di test di maggior rilievo per le applicazioni Mule
1. Test Unitari
2. Test di Integrazione
3. Test sulle Prestazioni
Introduzione
Test Unitari
● Verificano il codice implementato
● Test focalizzati sulle singole unità logiche, porzioni atomiche di codice
● Indipendenti dalle interazioni con altri sistemi
○ Mock / Stub
● Implementati dallo sviluppatore insieme al codice
● Eseguiti durante la fase di build
● Output: Copertura %
● Transparent Box Testing
Introduzione
Test Unitari
DESIGN
DEV
TEST
Approccio Tradizionale
B
U
G
F
I
X
Introduzione
Test Unitari
DESIGN
DEV
TEST
Approccio Tradizionale Approccio Guidato dai Test
B
U
G
F
I
X
REFACTO
R
DEV
TEST
Introduzione
Test di Integrazione
● Verificano come l’applicazione interagisce con sistemi esterni
● Test focalizzati sulle funzionalità dell’applicazione
● Necessità di
○ rendere i test replicabili
○ un ambiente dedicato effimero
● Opaque Box Testing
Introduzione
Test sulle Prestazioni
● Misurano le prestazioni del sistema nella sua interezza
○ Tempo di risposta
○ Affidabilità
○ Utilizzo risorse
○ …
● Test focalizzati sulla verifica del dimensionamento del sistema
● Stress Tests, Soak Tests, Resiliency Tests
○ Capacità di Burst in CloudHub
● Opaque Box Testing
Introduzione
Vantaggi del Testing
Diretti
● Verifica soddisfazione requisiti
● Verifica di non regressione
● Verifica risoluzione di bug
● Automatizzabili
Indiretti
● Documentazione ‘attiva’
● Collaudi semplificati
Introduzione
Vantaggi del Testing
Diretti
● Verifica soddisfazione requisiti
● Verifica di non regressione
● Verifica risoluzione di bug
● Automatizzabili
Indiretti
● Documentazione ‘attiva’
● Collaudi semplificati
C4E
2 - MUnit
MUnit
Panoramica
● Framework per il testing di applicazioni Mule
● Test = flusso Mule
● Test eseguiti nel Runtime Mule
MUnit
Dipendenze Maven
MUnit
Creazione di un nuovo Test in Anypoint Studio
A partire da un flusso o da Package Explorer
○ Creare un Test su un flusso
○ Creare un Test vuoto
○ Registrare un Test
MUnit
Mule Palette in Anypoint Studio
MUnit
Eseguire i Test
● Eseguire un singolo Test
● Eseguire una Test Suite
● Eseguire tutti i Test
● Debug dei Test
MUnit
Risultati dei Test in Anypoint Studio
MUnit
Code Coverage in Anypoint Studio
MUnit
Maven Plugin
$ mvn test
Output folder:
<project root>/reports
MUnit
Test Negativi
MUnit
Ignorare un test
MUnit
Mock
0
MUnit
Asserzioni
MUnit matcher
Veridicità Uguaglianza
3 - Tips & Tricks
Tips & Tricks
Naming Conventions & Packaging
● Nomi dei test parlanti
○ should-return-200-when-payload-is-not-null
○ should-raise-custom-error-when-result-code-is-null
● Non usare i nomi di default delle operazioni
○ Set Event, Flow Reference, Mock When, Assert That, ….
● Rispettare lo stesso packaging in src/main/mule
Tips & Tricks
Isolare i processori oggetto di test
Tips & Tricks
Isolare i processori oggetto di test
Tips & Tricks
Quali processori coprire?
● Trasformazioni
● Decisioni
● Errori Sollevati
● Errori Gestiti
Tips & Tricks
Quali processori coprire?
● Trasformazioni
● Decisioni
● Errori Sollevati
● Errori Gestiti
4 - Conclusioni
Conclusioni
Argomenti trattati
● Differenze tra i tipi di test
● Panoramica su MUnit
● Integrazione con Anypoint Studio
● Automatizzazione con Maven Plugin
● Suggerimenti per rendere più efficaci i Test MUnit
Conclusioni
Riferimenti e collegamenti utili
● https://docs.mulesoft.com/munit/
● https://blogs.mulesoft.com/dev-guides/api-design/munit-for-java-programmers
● https://blogs.mulesoft.com/dev-guides/api-design/test-assertions-for-java-programmers/
● https://blogs.mulesoft.com/dev-guides/api-design/munit-for-java-programmers-test-fixtures/
● https://blogs.mulesoft.com/dev-guides/api-design/munit-for-java-programmers-test-execution/
● https://blogs.mulesoft.com/dev-guides/api-design/munit-for-java-devs-test-doubles/
● https://blogs.mulesoft.com/dev-guides/how-to-tutorials/munit-test-recorder/
● https://blogs.mulesoft.com/dev-guides/how-to-tutorials/munit-testing-strategies/
● https://blogs.mulesoft.com/dev-guides/how-to-tutorials/easier-assertions-xml-json-in-munit/
● https://blogs.mulesoft.com/dev-guides/how-to-tutorials/testing-with-mulesoft-munit-part-1/
● https://blogs.mulesoft.com/dev-guides/how-to-tutorials/testing-with-mulesoft-munit-part-2/
● https://blogs.mulesoft.com/dev-guides/how-to-tutorials/automate-the-jenkins-developer-pipeline/
● https://developer.mulesoft.com/tutorials-and-howtos/quick-start/how-to-create-your-first-munit-test-in-anypoint-studio
● https://integralzone.com/cloudhub-vs-on-premise/
MuleSoft Meetup Milano – Luca Bonaldo, Software developer
Tips & Tricks per l’integrazione
Salesforce
Agenda
1. Integration with Salesforce
2. Salesforce APIs
3. MuleSoft connector
4. Advantages
5. Demo
1 - Integration with Salesforce
Goal
Integration with Salesforce
1. How to extract data from Salesforce - Connectivity Options
2. How to integrate external data into Salesforce
3. Integration Approaches – What’s the right one?
Goal
Integration with Salesforce
Heroku
Connect
Salesforce
Connect
MuleSoft Anypoint
Platform
Unlock Salesforce data
Integrate any app, data, or device
Salesforce APIs
2 - Salesforce APIs
Salesforce APIs
API Name Protocol Data Format Communication
REST API REST JSON, XML Synchronous
SOAP API SOAP
(WSDL)
XML Synchronous
Chatter
REST API
REST JSON, XML Synchronous (photos are
processed asynchronously)
User
Interface
API
REST JSON Synchronous
Analytics
REST API
REST JSON, XML Synchronous
Bulk API REST CSV, JSON,
XML
Asynchronous
Metadata
API
SOAP
(WSDL)
XML Asynchronous
Streaming
API
Bayeux JSON Asynchronous (stream of
data)
Apex REST
API
REST JSON, XML,
Custom
Synchronous
Apex SOAP
API
SOAP
(WSDL)
XML Synchronous
Tooling API REST or
SOAP
(WSDL)
JSON, XML,
Custom
Synchronous
Mulesoft Standard Connector
supports 6 integration technologies
from SFDC Core:
- SOAP
- Bulk REST
- Streaming
- Metadata
- Apex SOAP
- Apex REST
Salesforce APIs
• REST API
– It exposes all sorts of Salesforce functionality via REST resources and HTTP
methods
– CRUD operations
– Search and Query operations to get object metadata
– Supports JSON and XML
– Great for mobile and web apps pulling data from SF
• SOAP API
– Offers the same functionality as REST API but exposed as a SOAP web
service
– Uses a WSDL file to define parameters and access
– Good for server-to-server integrations
Integration methods
Salesforce APIs
• STREAMING APIs
– It's a specialized API for setting up notifications that trigger when changes are made to
your data
– Uses a publish-subscribe model in which users can subscribe to channels that broadcast
certain types of data changes
– This model reduces the number of API requests by eliminating the need for polling.
– This is the preferred API for writing apps that would otherwise need to frequently poll
for changes.
• BULK API
– It's a specialized REST API for loading and querying lots of data at once
– Use for Query, Insert, Update,Upsert, or Delete for 10’s of thousands to millions of
records
– It's asynchronous --> you can submit the request and come back later for results
– This API is the preferred one when dealing with large amounts of data. Ex: loading data
into your org for the first time
– Two versions supported Bulk API 1.0 and 2.0
Integration methods
3 - MuleSoft connector
MuleSoft connector
SOAP/REST
API
BULK
API
STREAMING
API
MULESOFT CONNECTOR
SALESFORCE
BUSINESS
LOGIC
UNIT 1
BUSINESS
LOGIC
UNIT 2
BUSINESS
LOGIC
UNIT N
● N Business Unit
● 1 Endpoint
● Integration methods
4 - Advantages
Advantages
● One layer
● Drag & Drop mapping
● IntelliSense
Advantages
● Example on Anypoint Exchange (Accelerators)
● Optimization APIs call
5 - Demo
Contattaci all’indirizzo meetup@florence-
consulting.it
Hai ancora domande e vuoi
approfondire in separata sede?
Invia il tuo feedback
Finito l’evento riceverai una e-mail per inviare il
tuo feedback: facci sapere con precisione quali
sono i topic che ti piacerebbe approfondire
insieme!
We Are Hiring!
GRAZIE!
We Are Hiring!

More Related Content

Similar to Milano Meetup #8 - Testing & Salesforce Integration

PowerMock TDD User Group Milano
PowerMock TDD User Group MilanoPowerMock TDD User Group Milano
PowerMock TDD User Group MilanoMassimo Groppelli
 
Software Testing & Test Driven Development
Software Testing & Test Driven DevelopmentSoftware Testing & Test Driven Development
Software Testing & Test Driven DevelopmentSergio Santoro
 
dal test manuale al test automatico: un esempio basato sul Keyword Driven Tes...
dal test manuale al test automatico: un esempio basato sul Keyword Driven Tes...dal test manuale al test automatico: un esempio basato sul Keyword Driven Tes...
dal test manuale al test automatico: un esempio basato sul Keyword Driven Tes...Microfocusitalia
 
CI/CD - Presentazione Introduttiva
CI/CD - Presentazione IntroduttivaCI/CD - Presentazione Introduttiva
CI/CD - Presentazione IntroduttivaMatteo Di Carlo
 
MattiaBeltrano_azurePipelines.pptx
MattiaBeltrano_azurePipelines.pptxMattiaBeltrano_azurePipelines.pptx
MattiaBeltrano_azurePipelines.pptxAndreaCapolei1
 
Test e scrum un caso reale v3.2
Test e scrum   un caso reale v3.2Test e scrum   un caso reale v3.2
Test e scrum un caso reale v3.2Ivan Fioravanti
 
L'Occhio di Ra sul Testing
L'Occhio di Ra sul TestingL'Occhio di Ra sul Testing
L'Occhio di Ra sul TestingFelice Pescatore
 
Metodo Evolus 8.02 - ERP evoluto per la PMI
Metodo Evolus 8.02 - ERP evoluto per la PMI Metodo Evolus 8.02 - ERP evoluto per la PMI
Metodo Evolus 8.02 - ERP evoluto per la PMI Metodo spa
 
Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Piero Sbressa
 
It starts with a goal - Prato
It starts with a goal - PratoIt starts with a goal - Prato
It starts with a goal - PratoRiccardo Porrini
 
Software testing with mocking framework (Android App)
Software testing with mocking framework (Android App)Software testing with mocking framework (Android App)
Software testing with mocking framework (Android App)gioacchinolonardo
 
Un backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringUn backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringMarcello Teodori
 

Similar to Milano Meetup #8 - Testing & Salesforce Integration (20)

Unit test
Unit testUnit test
Unit test
 
PowerMock TDD User Group Milano
PowerMock TDD User Group MilanoPowerMock TDD User Group Milano
PowerMock TDD User Group Milano
 
Software Testing & Test Driven Development
Software Testing & Test Driven DevelopmentSoftware Testing & Test Driven Development
Software Testing & Test Driven Development
 
Software Testing e TDD
Software Testing e TDDSoftware Testing e TDD
Software Testing e TDD
 
dal test manuale al test automatico: un esempio basato sul Keyword Driven Tes...
dal test manuale al test automatico: un esempio basato sul Keyword Driven Tes...dal test manuale al test automatico: un esempio basato sul Keyword Driven Tes...
dal test manuale al test automatico: un esempio basato sul Keyword Driven Tes...
 
CI/CD - Presentazione Introduttiva
CI/CD - Presentazione IntroduttivaCI/CD - Presentazione Introduttiva
CI/CD - Presentazione Introduttiva
 
MattiaBeltrano_azurePipelines.pptx
MattiaBeltrano_azurePipelines.pptxMattiaBeltrano_azurePipelines.pptx
MattiaBeltrano_azurePipelines.pptx
 
Test e scrum un caso reale v3.2
Test e scrum   un caso reale v3.2Test e scrum   un caso reale v3.2
Test e scrum un caso reale v3.2
 
L'Occhio di Ra sul Testing
L'Occhio di Ra sul TestingL'Occhio di Ra sul Testing
L'Occhio di Ra sul Testing
 
Alfresco su misura
Alfresco su misuraAlfresco su misura
Alfresco su misura
 
Metodo Evolus 8.02 - ERP evoluto per la PMI
Metodo Evolus 8.02 - ERP evoluto per la PMI Metodo Evolus 8.02 - ERP evoluto per la PMI
Metodo Evolus 8.02 - ERP evoluto per la PMI
 
Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015
 
Continous integration e jenkins
Continous integration e jenkinsContinous integration e jenkins
Continous integration e jenkins
 
Git branching model
Git branching modelGit branching model
Git branching model
 
Unit testing 101
Unit testing 101Unit testing 101
Unit testing 101
 
LARUS 10th - Rampado Omar
LARUS 10th - Rampado OmarLARUS 10th - Rampado Omar
LARUS 10th - Rampado Omar
 
It starts with a goal - Prato
It starts with a goal - PratoIt starts with a goal - Prato
It starts with a goal - Prato
 
Software testing with mocking framework (Android App)
Software testing with mocking framework (Android App)Software testing with mocking framework (Android App)
Software testing with mocking framework (Android App)
 
Microsoft Fast - Overview
Microsoft Fast - OverviewMicrosoft Fast - Overview
Microsoft Fast - Overview
 
Un backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con SpringUn backend per tutte le stagioni con Spring
Un backend per tutte le stagioni con Spring
 

More from Gonzalo Marcos Ansoain

Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDMulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDGonzalo Marcos Ansoain
 
Milano Meetup #6 - Training & Certification and Internal Support Models
Milano Meetup #6 - Training & Certification and Internal Support ModelsMilano Meetup #6 - Training & Certification and Internal Support Models
Milano Meetup #6 - Training & Certification and Internal Support ModelsGonzalo Marcos Ansoain
 
Meetup milano #4 log management and anypoint advanced monitoring
Meetup milano #4   log management and anypoint advanced monitoringMeetup milano #4   log management and anypoint advanced monitoring
Meetup milano #4 log management and anypoint advanced monitoringGonzalo Marcos Ansoain
 
Meetup milano #4 Come esternalizzare i log di mule
Meetup milano #4   Come esternalizzare i log di muleMeetup milano #4   Come esternalizzare i log di mule
Meetup milano #4 Come esternalizzare i log di muleGonzalo Marcos Ansoain
 
Meetup milano #4 Anypoint Monitoring and Titanium overview
Meetup milano #4   Anypoint Monitoring and Titanium overviewMeetup milano #4   Anypoint Monitoring and Titanium overview
Meetup milano #4 Anypoint Monitoring and Titanium overviewGonzalo Marcos Ansoain
 
Meetup milano #3 all you need to know before creating your vpc
Meetup milano #3   all you need to know before creating your vpcMeetup milano #3   all you need to know before creating your vpc
Meetup milano #3 all you need to know before creating your vpcGonzalo Marcos Ansoain
 
Innovation Talks @ Konica Minolta Portugal
Innovation Talks @ Konica Minolta PortugalInnovation Talks @ Konica Minolta Portugal
Innovation Talks @ Konica Minolta PortugalGonzalo Marcos Ansoain
 
SharePoint Saturday @ Firenze - Building Effective Business Collaboration Pla...
SharePoint Saturday @ Firenze - Building Effective Business Collaboration Pla...SharePoint Saturday @ Firenze - Building Effective Business Collaboration Pla...
SharePoint Saturday @ Firenze - Building Effective Business Collaboration Pla...Gonzalo Marcos Ansoain
 
Creando Plataformas de Colaboracion Efectivas
Creando Plataformas de Colaboracion EfectivasCreando Plataformas de Colaboracion Efectivas
Creando Plataformas de Colaboracion EfectivasGonzalo Marcos Ansoain
 
Novedades SharePoint 2016. Nuevos retos en Entonos Hibridos
Novedades SharePoint 2016. Nuevos retos en Entonos HibridosNovedades SharePoint 2016. Nuevos retos en Entonos Hibridos
Novedades SharePoint 2016. Nuevos retos en Entonos HibridosGonzalo Marcos Ansoain
 
Come creare Piattaforme di Collaborazione Efficienti
Come creare Piattaforme di Collaborazione EfficientiCome creare Piattaforme di Collaborazione Efficienti
Come creare Piattaforme di Collaborazione EfficientiGonzalo Marcos Ansoain
 
Building effective business collaboration platforms
Building effective business collaboration platformsBuilding effective business collaboration platforms
Building effective business collaboration platformsGonzalo Marcos Ansoain
 
Five ways to smash barriers to SharePoint adoption
Five ways to smash barriers to SharePoint adoptionFive ways to smash barriers to SharePoint adoption
Five ways to smash barriers to SharePoint adoptionGonzalo Marcos Ansoain
 

More from Gonzalo Marcos Ansoain (14)

Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CDMulesoft Meetup Milano #9 - Batch Processing and CI/CD
Mulesoft Meetup Milano #9 - Batch Processing and CI/CD
 
Milano Meetup #6 - Training & Certification and Internal Support Models
Milano Meetup #6 - Training & Certification and Internal Support ModelsMilano Meetup #6 - Training & Certification and Internal Support Models
Milano Meetup #6 - Training & Certification and Internal Support Models
 
Meetup milano #4 log management and anypoint advanced monitoring
Meetup milano #4   log management and anypoint advanced monitoringMeetup milano #4   log management and anypoint advanced monitoring
Meetup milano #4 log management and anypoint advanced monitoring
 
Meetup milano #4 Come esternalizzare i log di mule
Meetup milano #4   Come esternalizzare i log di muleMeetup milano #4   Come esternalizzare i log di mule
Meetup milano #4 Come esternalizzare i log di mule
 
Meetup milano #4 Anypoint Monitoring and Titanium overview
Meetup milano #4   Anypoint Monitoring and Titanium overviewMeetup milano #4   Anypoint Monitoring and Titanium overview
Meetup milano #4 Anypoint Monitoring and Titanium overview
 
Meetup milano #3 all you need to know before creating your vpc
Meetup milano #3   all you need to know before creating your vpcMeetup milano #3   all you need to know before creating your vpc
Meetup milano #3 all you need to know before creating your vpc
 
Nintex 3.0 Introduction
Nintex 3.0 IntroductionNintex 3.0 Introduction
Nintex 3.0 Introduction
 
Innovation Talks @ Konica Minolta Portugal
Innovation Talks @ Konica Minolta PortugalInnovation Talks @ Konica Minolta Portugal
Innovation Talks @ Konica Minolta Portugal
 
SharePoint Saturday @ Firenze - Building Effective Business Collaboration Pla...
SharePoint Saturday @ Firenze - Building Effective Business Collaboration Pla...SharePoint Saturday @ Firenze - Building Effective Business Collaboration Pla...
SharePoint Saturday @ Firenze - Building Effective Business Collaboration Pla...
 
Creando Plataformas de Colaboracion Efectivas
Creando Plataformas de Colaboracion EfectivasCreando Plataformas de Colaboracion Efectivas
Creando Plataformas de Colaboracion Efectivas
 
Novedades SharePoint 2016. Nuevos retos en Entonos Hibridos
Novedades SharePoint 2016. Nuevos retos en Entonos HibridosNovedades SharePoint 2016. Nuevos retos en Entonos Hibridos
Novedades SharePoint 2016. Nuevos retos en Entonos Hibridos
 
Come creare Piattaforme di Collaborazione Efficienti
Come creare Piattaforme di Collaborazione EfficientiCome creare Piattaforme di Collaborazione Efficienti
Come creare Piattaforme di Collaborazione Efficienti
 
Building effective business collaboration platforms
Building effective business collaboration platformsBuilding effective business collaboration platforms
Building effective business collaboration platforms
 
Five ways to smash barriers to SharePoint adoption
Five ways to smash barriers to SharePoint adoptionFive ways to smash barriers to SharePoint adoption
Five ways to smash barriers to SharePoint adoption
 

Milano Meetup #8 - Testing & Salesforce Integration

  • 1. 19 Maggio 2022 MILANO MuleSoft Meetup Group L’importanza del Testing e la sua automazione - Paolo Petronzi Tips & Tricks per l’integrazione con Salesforce - Luca Bonaldo
  • 2. MuleSoft Meetup Milano – Paolo Umberto Petronzi, Software Architect L'importanza del Testing e la sua automazione
  • 3. Agenda 1. Introduzione 2. MUnit 3. Tips & Tricks 4. Conclusioni
  • 5. Introduzione Tipi di test di maggior rilievo per le applicazioni Mule 1. Test Unitari 2. Test di Integrazione 3. Test sulle Prestazioni
  • 6. Introduzione Test Unitari ● Verificano il codice implementato ● Test focalizzati sulle singole unità logiche, porzioni atomiche di codice ● Indipendenti dalle interazioni con altri sistemi ○ Mock / Stub ● Implementati dallo sviluppatore insieme al codice ● Eseguiti durante la fase di build ● Output: Copertura % ● Transparent Box Testing
  • 8. Introduzione Test Unitari DESIGN DEV TEST Approccio Tradizionale Approccio Guidato dai Test B U G F I X REFACTO R DEV TEST
  • 9. Introduzione Test di Integrazione ● Verificano come l’applicazione interagisce con sistemi esterni ● Test focalizzati sulle funzionalità dell’applicazione ● Necessità di ○ rendere i test replicabili ○ un ambiente dedicato effimero ● Opaque Box Testing
  • 10. Introduzione Test sulle Prestazioni ● Misurano le prestazioni del sistema nella sua interezza ○ Tempo di risposta ○ Affidabilità ○ Utilizzo risorse ○ … ● Test focalizzati sulla verifica del dimensionamento del sistema ● Stress Tests, Soak Tests, Resiliency Tests ○ Capacità di Burst in CloudHub ● Opaque Box Testing
  • 11. Introduzione Vantaggi del Testing Diretti ● Verifica soddisfazione requisiti ● Verifica di non regressione ● Verifica risoluzione di bug ● Automatizzabili Indiretti ● Documentazione ‘attiva’ ● Collaudi semplificati
  • 12. Introduzione Vantaggi del Testing Diretti ● Verifica soddisfazione requisiti ● Verifica di non regressione ● Verifica risoluzione di bug ● Automatizzabili Indiretti ● Documentazione ‘attiva’ ● Collaudi semplificati C4E
  • 14. MUnit Panoramica ● Framework per il testing di applicazioni Mule ● Test = flusso Mule ● Test eseguiti nel Runtime Mule
  • 16. MUnit Creazione di un nuovo Test in Anypoint Studio A partire da un flusso o da Package Explorer ○ Creare un Test su un flusso ○ Creare un Test vuoto ○ Registrare un Test
  • 17. MUnit Mule Palette in Anypoint Studio
  • 18. MUnit Eseguire i Test ● Eseguire un singolo Test ● Eseguire una Test Suite ● Eseguire tutti i Test ● Debug dei Test
  • 19. MUnit Risultati dei Test in Anypoint Studio
  • 20. MUnit Code Coverage in Anypoint Studio
  • 21. MUnit Maven Plugin $ mvn test Output folder: <project root>/reports
  • 26. 3 - Tips & Tricks
  • 27. Tips & Tricks Naming Conventions & Packaging ● Nomi dei test parlanti ○ should-return-200-when-payload-is-not-null ○ should-raise-custom-error-when-result-code-is-null ● Non usare i nomi di default delle operazioni ○ Set Event, Flow Reference, Mock When, Assert That, …. ● Rispettare lo stesso packaging in src/main/mule
  • 28. Tips & Tricks Isolare i processori oggetto di test
  • 29. Tips & Tricks Isolare i processori oggetto di test
  • 30. Tips & Tricks Quali processori coprire? ● Trasformazioni ● Decisioni ● Errori Sollevati ● Errori Gestiti
  • 31. Tips & Tricks Quali processori coprire? ● Trasformazioni ● Decisioni ● Errori Sollevati ● Errori Gestiti
  • 33. Conclusioni Argomenti trattati ● Differenze tra i tipi di test ● Panoramica su MUnit ● Integrazione con Anypoint Studio ● Automatizzazione con Maven Plugin ● Suggerimenti per rendere più efficaci i Test MUnit
  • 34. Conclusioni Riferimenti e collegamenti utili ● https://docs.mulesoft.com/munit/ ● https://blogs.mulesoft.com/dev-guides/api-design/munit-for-java-programmers ● https://blogs.mulesoft.com/dev-guides/api-design/test-assertions-for-java-programmers/ ● https://blogs.mulesoft.com/dev-guides/api-design/munit-for-java-programmers-test-fixtures/ ● https://blogs.mulesoft.com/dev-guides/api-design/munit-for-java-programmers-test-execution/ ● https://blogs.mulesoft.com/dev-guides/api-design/munit-for-java-devs-test-doubles/ ● https://blogs.mulesoft.com/dev-guides/how-to-tutorials/munit-test-recorder/ ● https://blogs.mulesoft.com/dev-guides/how-to-tutorials/munit-testing-strategies/ ● https://blogs.mulesoft.com/dev-guides/how-to-tutorials/easier-assertions-xml-json-in-munit/ ● https://blogs.mulesoft.com/dev-guides/how-to-tutorials/testing-with-mulesoft-munit-part-1/ ● https://blogs.mulesoft.com/dev-guides/how-to-tutorials/testing-with-mulesoft-munit-part-2/ ● https://blogs.mulesoft.com/dev-guides/how-to-tutorials/automate-the-jenkins-developer-pipeline/ ● https://developer.mulesoft.com/tutorials-and-howtos/quick-start/how-to-create-your-first-munit-test-in-anypoint-studio ● https://integralzone.com/cloudhub-vs-on-premise/
  • 35. MuleSoft Meetup Milano – Luca Bonaldo, Software developer Tips & Tricks per l’integrazione Salesforce
  • 36. Agenda 1. Integration with Salesforce 2. Salesforce APIs 3. MuleSoft connector 4. Advantages 5. Demo
  • 37. 1 - Integration with Salesforce
  • 38. Goal Integration with Salesforce 1. How to extract data from Salesforce - Connectivity Options 2. How to integrate external data into Salesforce 3. Integration Approaches – What’s the right one?
  • 39. Goal Integration with Salesforce Heroku Connect Salesforce Connect MuleSoft Anypoint Platform Unlock Salesforce data Integrate any app, data, or device Salesforce APIs
  • 41. Salesforce APIs API Name Protocol Data Format Communication REST API REST JSON, XML Synchronous SOAP API SOAP (WSDL) XML Synchronous Chatter REST API REST JSON, XML Synchronous (photos are processed asynchronously) User Interface API REST JSON Synchronous Analytics REST API REST JSON, XML Synchronous Bulk API REST CSV, JSON, XML Asynchronous Metadata API SOAP (WSDL) XML Asynchronous Streaming API Bayeux JSON Asynchronous (stream of data) Apex REST API REST JSON, XML, Custom Synchronous Apex SOAP API SOAP (WSDL) XML Synchronous Tooling API REST or SOAP (WSDL) JSON, XML, Custom Synchronous Mulesoft Standard Connector supports 6 integration technologies from SFDC Core: - SOAP - Bulk REST - Streaming - Metadata - Apex SOAP - Apex REST
  • 42. Salesforce APIs • REST API – It exposes all sorts of Salesforce functionality via REST resources and HTTP methods – CRUD operations – Search and Query operations to get object metadata – Supports JSON and XML – Great for mobile and web apps pulling data from SF • SOAP API – Offers the same functionality as REST API but exposed as a SOAP web service – Uses a WSDL file to define parameters and access – Good for server-to-server integrations Integration methods
  • 43. Salesforce APIs • STREAMING APIs – It's a specialized API for setting up notifications that trigger when changes are made to your data – Uses a publish-subscribe model in which users can subscribe to channels that broadcast certain types of data changes – This model reduces the number of API requests by eliminating the need for polling. – This is the preferred API for writing apps that would otherwise need to frequently poll for changes. • BULK API – It's a specialized REST API for loading and querying lots of data at once – Use for Query, Insert, Update,Upsert, or Delete for 10’s of thousands to millions of records – It's asynchronous --> you can submit the request and come back later for results – This API is the preferred one when dealing with large amounts of data. Ex: loading data into your org for the first time – Two versions supported Bulk API 1.0 and 2.0 Integration methods
  • 44. 3 - MuleSoft connector
  • 45. MuleSoft connector SOAP/REST API BULK API STREAMING API MULESOFT CONNECTOR SALESFORCE BUSINESS LOGIC UNIT 1 BUSINESS LOGIC UNIT 2 BUSINESS LOGIC UNIT N ● N Business Unit ● 1 Endpoint ● Integration methods
  • 47. Advantages ● One layer ● Drag & Drop mapping ● IntelliSense
  • 48. Advantages ● Example on Anypoint Exchange (Accelerators) ● Optimization APIs call
  • 50. Contattaci all’indirizzo meetup@florence- consulting.it Hai ancora domande e vuoi approfondire in separata sede? Invia il tuo feedback Finito l’evento riceverai una e-mail per inviare il tuo feedback: facci sapere con precisione quali sono i topic che ti piacerebbe approfondire insieme! We Are Hiring!