SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Unit Testing More than Apex
Testing the Declarative Side of the Salesforce1 Platform
​ Mike Chale
​ Senior Developer
​ @Trifecta
​ @mike_chale
​ 
Deliver consistent customer experiences across web, mobile, and eCommerce platforms that are
fully integrated into your business systems.
​ 20+ Years developing enterprise solutions, primarily focused on commerce
​ 100+ Salesforce Certifications, including a Salesforce MVP
Trifecta Commerce – Available on the AppExchange
​ Native app, streamlines order entry supporting B2B and B2B2C commerce.
Top Industries Served:
​ Manufacturing/Distribution
​ CPG/Retail
​ Life Sciences
​ Hospitality and Entertainment
Who is Trifecta?
Visit our booth – #2021 Moscone North
Unit testing has one job . . .
Source: https://www.pinterest.com/pin/460141286900183385/
1.  Ensure customizations work as expected
2.  Verify edge cases
3.  Make changes confidently
4.  Preserve knowledge
Why Unit Test?
When I saw the light. . .
​ . . . this was step 1 of a 3 step field update process
1.  Change Management
2.  Declarative features replacing code
3.  Save time
Why Unit Test Metadata?
1.  Verify sObject rules
1.  Required fields
2.  Lookup filters
3.  Validation rules
Unit Testing Metadata
§  Leads are converted without contact information!
§  Need company size on Lead for classification
§  Accounts have their Key Contact outside of the company
Sample Request #1
Demo
1.  Verify sObject rules
2.  Verify critical processes
Unit Testing Metadata
1.  Are the entry criteria working as expected?
2.  Is it going to the correct person/people?
3.  Check all branches
Verifying Approval Processes
§  All “big deals” need to be approved
§  Deals worth at least $50,000 go to manager
§  Deals over $100,000 require secondary approval
Sample Request #2
Demo
1.  Verify sObject rules
2.  Verify critical processes
3.  Verify complex Process Builder
1.  Post to Chatter
2.  Auto-submit Approval
Unit Testing Metadata
§  Processes can have multiple branches
§  Each branch can perform multiple steps
§  Post to Chatter
§  Update self / related records
§  Submit for Approval
§  Invoke Apex and Flows
Testing Process Builder
§  Approval Process is great!
§  Can the Opportunity be submitted automatically?
§  And @mention the manager
Sample Request #3
Demo
1.  Verify sObject rules
2.  Verify critical processes
3.  Verify complex Process Builder
1.  Post to Chatter
2.  Auto-submit Approval
3.  Update and create records
Unit Testing Metadata
§  Need reminders!
§  Can we automatically convert an Opportunity to an Order?
§  And create the Contract?
Sample Request #4
Demo
§  Complex orgs have many interactions
§  Workflows and Process Builder can be complex
§  Save time with regression testing
Recap
§  Presentation and sample code - https://github.com/chalemic/UnitTestingMoreThanApex
§  How to Write Good Unit Tests -
https://developer.salesforce.com/page/How_to_Write_Good_Unit_Tests
§  Testing Best Practices -
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/
apex_testing_best_practices.htm
§  Apex Approval Processing Example -
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/
apex_process_example.htm
§  Apex Lead Convert Class -
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/
apex_dml_convertLead.htm
Resources
Thank you

Más contenido relacionado

La actualidad más candente

Getting Started with Process Builder
Getting Started with Process BuilderGetting Started with Process Builder
Getting Started with Process BuilderSalesforce Admins
 
E-TAIL QA: Approach to E-commerce testing in an Agile environment
E-TAIL QA: Approach to E-commerce testing in an Agile environmentE-TAIL QA: Approach to E-commerce testing in an Agile environment
E-TAIL QA: Approach to E-commerce testing in an Agile environmentNurun
 
Leveraging JavaScript Promises and the Bulk API
Leveraging JavaScript Promises and the Bulk APILeveraging JavaScript Promises and the Bulk API
Leveraging JavaScript Promises and the Bulk APISalesforce Developers
 
Why software testing
Why software testingWhy software testing
Why software testingtransformtoit
 
Working of the internet-IP Address
Working of the internet-IP AddressWorking of the internet-IP Address
Working of the internet-IP AddressCodewizacademy
 
Service objects in Rails tests - factory_girl replacement
Service objects in Rails tests - factory_girl replacementService objects in Rails tests - factory_girl replacement
Service objects in Rails tests - factory_girl replacementAndrzej Krzywda
 
Chemicalize Pro - Cheminfo Stories 2020 Day 5
Chemicalize Pro - Cheminfo Stories 2020 Day 5Chemicalize Pro - Cheminfo Stories 2020 Day 5
Chemicalize Pro - Cheminfo Stories 2020 Day 5ChemAxon
 
SOA-C01 Dumps Questions
SOA-C01 Dumps QuestionsSOA-C01 Dumps Questions
SOA-C01 Dumps QuestionsBraindumps4IT
 
A Pocket Guide to Process Builder, Flows, and Triggers
A Pocket Guide to Process Builder, Flows, and TriggersA Pocket Guide to Process Builder, Flows, and Triggers
A Pocket Guide to Process Builder, Flows, and TriggersSalesforce Developers
 
Woo for You: Customizing WooCommerce - Gary Thayer - WCNYC18
Woo for You: Customizing WooCommerce - Gary Thayer - WCNYC18Woo for You: Customizing WooCommerce - Gary Thayer - WCNYC18
Woo for You: Customizing WooCommerce - Gary Thayer - WCNYC18Gary Thayer
 
Episode 12 - Basics of Trigger
Episode 12 - Basics of TriggerEpisode 12 - Basics of Trigger
Episode 12 - Basics of TriggerJitendra Zaa
 
How to use New Technology to become more efficient
How to use New Technology to become more efficientHow to use New Technology to become more efficient
How to use New Technology to become more efficientAndy Carruthers
 
Your Tests Are Not Your Specs
Your Tests Are Not Your SpecsYour Tests Are Not Your Specs
Your Tests Are Not Your SpecsHillel Wayne
 
ASCENT MANUFACTURING INC
ASCENT MANUFACTURING INCASCENT MANUFACTURING INC
ASCENT MANUFACTURING INCDavid Kramer
 
ABControls Project Design & Delivery Steps
ABControls Project Design & Delivery StepsABControls Project Design & Delivery Steps
ABControls Project Design & Delivery StepsMikeNariman
 
Shorten Your Development Time with an Extensible Design for Apex
Shorten Your Development Time with an Extensible Design for ApexShorten Your Development Time with an Extensible Design for Apex
Shorten Your Development Time with an Extensible Design for ApexSalesforce Developers
 
Q1 2020 feature roundup - slide deck
Q1 2020 feature roundup - slide deckQ1 2020 feature roundup - slide deck
Q1 2020 feature roundup - slide deckritika2006
 
Stilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgt
Stilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgtStilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgt
Stilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgtDynatrace
 

La actualidad más candente (20)

Getting Started with Process Builder
Getting Started with Process BuilderGetting Started with Process Builder
Getting Started with Process Builder
 
E-TAIL QA: Approach to E-commerce testing in an Agile environment
E-TAIL QA: Approach to E-commerce testing in an Agile environmentE-TAIL QA: Approach to E-commerce testing in an Agile environment
E-TAIL QA: Approach to E-commerce testing in an Agile environment
 
Leveraging JavaScript Promises and the Bulk API
Leveraging JavaScript Promises and the Bulk APILeveraging JavaScript Promises and the Bulk API
Leveraging JavaScript Promises and the Bulk API
 
Why software testing
Why software testingWhy software testing
Why software testing
 
Working of the internet-IP Address
Working of the internet-IP AddressWorking of the internet-IP Address
Working of the internet-IP Address
 
Service objects in Rails tests - factory_girl replacement
Service objects in Rails tests - factory_girl replacementService objects in Rails tests - factory_girl replacement
Service objects in Rails tests - factory_girl replacement
 
Chemicalize Pro - Cheminfo Stories 2020 Day 5
Chemicalize Pro - Cheminfo Stories 2020 Day 5Chemicalize Pro - Cheminfo Stories 2020 Day 5
Chemicalize Pro - Cheminfo Stories 2020 Day 5
 
SOA-C01 Dumps Questions
SOA-C01 Dumps QuestionsSOA-C01 Dumps Questions
SOA-C01 Dumps Questions
 
A Pocket Guide to Process Builder, Flows, and Triggers
A Pocket Guide to Process Builder, Flows, and TriggersA Pocket Guide to Process Builder, Flows, and Triggers
A Pocket Guide to Process Builder, Flows, and Triggers
 
Woo for You: Customizing WooCommerce - Gary Thayer - WCNYC18
Woo for You: Customizing WooCommerce - Gary Thayer - WCNYC18Woo for You: Customizing WooCommerce - Gary Thayer - WCNYC18
Woo for You: Customizing WooCommerce - Gary Thayer - WCNYC18
 
Episode 12 - Basics of Trigger
Episode 12 - Basics of TriggerEpisode 12 - Basics of Trigger
Episode 12 - Basics of Trigger
 
How to use New Technology to become more efficient
How to use New Technology to become more efficientHow to use New Technology to become more efficient
How to use New Technology to become more efficient
 
Your Tests Are Not Your Specs
Your Tests Are Not Your SpecsYour Tests Are Not Your Specs
Your Tests Are Not Your Specs
 
ASCENT MANUFACTURING INC
ASCENT MANUFACTURING INCASCENT MANUFACTURING INC
ASCENT MANUFACTURING INC
 
ABControls Project Design & Delivery Steps
ABControls Project Design & Delivery StepsABControls Project Design & Delivery Steps
ABControls Project Design & Delivery Steps
 
A Story of Continuous Integration
A Story of Continuous IntegrationA Story of Continuous Integration
A Story of Continuous Integration
 
Shorten Your Development Time with an Extensible Design for Apex
Shorten Your Development Time with an Extensible Design for ApexShorten Your Development Time with an Extensible Design for Apex
Shorten Your Development Time with an Extensible Design for Apex
 
Q1 2020 feature roundup - slide deck
Q1 2020 feature roundup - slide deckQ1 2020 feature roundup - slide deck
Q1 2020 feature roundup - slide deck
 
Stilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgt
Stilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgtStilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgt
Stilnest.com: Wie beste Magento-Shop-Performance für zufriedene Kunden sorgt
 
Creating a New Work Order
Creating a New Work OrderCreating a New Work Order
Creating a New Work Order
 

Destacado

Program for Online Teaching: Personal Learning Networks (2 Feb 2012)
Program for Online Teaching: Personal Learning Networks (2 Feb 2012)Program for Online Teaching: Personal Learning Networks (2 Feb 2012)
Program for Online Teaching: Personal Learning Networks (2 Feb 2012)Lisa M Lane
 
High Medieval Topics: Scholasticism, Architecture, Chivalry
High Medieval Topics: Scholasticism, Architecture, ChivalryHigh Medieval Topics: Scholasticism, Architecture, Chivalry
High Medieval Topics: Scholasticism, Architecture, ChivalryLisa M Lane
 
FOLIO - An open source multi-tenant platform
FOLIO - An open source multi-tenant platformFOLIO - An open source multi-tenant platform
FOLIO - An open source multi-tenant platformAndrew Nagy
 
Lesson No 10 The Oneness Truth
Lesson No  10   The Oneness TruthLesson No  10   The Oneness Truth
Lesson No 10 The Oneness Truthguest22999d
 
Lightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE EvolvedLightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE EvolvedSalesforce Developers
 
Coding Apps in the Cloud with Force.com - Part I
Coding Apps in the Cloud with Force.com - Part ICoding Apps in the Cloud with Force.com - Part I
Coding Apps in the Cloud with Force.com - Part ISalesforce Developers
 
Coding Apps in the Cloud with Force.com - Part 2
Coding Apps in the Cloud with Force.com - Part 2Coding Apps in the Cloud with Force.com - Part 2
Coding Apps in the Cloud with Force.com - Part 2Salesforce Developers
 
Parallel Programming
Parallel ProgrammingParallel Programming
Parallel ProgrammingUday Sharma
 

Destacado (16)

Deber de anatomia (1)
Deber de anatomia (1)Deber de anatomia (1)
Deber de anatomia (1)
 
精選書摘
精選書摘精選書摘
精選書摘
 
Program for Online Teaching: Personal Learning Networks (2 Feb 2012)
Program for Online Teaching: Personal Learning Networks (2 Feb 2012)Program for Online Teaching: Personal Learning Networks (2 Feb 2012)
Program for Online Teaching: Personal Learning Networks (2 Feb 2012)
 
Deber de anatomia (1)
Deber de anatomia (1)Deber de anatomia (1)
Deber de anatomia (1)
 
Parallel computing
Parallel computingParallel computing
Parallel computing
 
High Medieval Topics: Scholasticism, Architecture, Chivalry
High Medieval Topics: Scholasticism, Architecture, ChivalryHigh Medieval Topics: Scholasticism, Architecture, Chivalry
High Medieval Topics: Scholasticism, Architecture, Chivalry
 
Versions of android
Versions of androidVersions of android
Versions of android
 
FOLIO - An open source multi-tenant platform
FOLIO - An open source multi-tenant platformFOLIO - An open source multi-tenant platform
FOLIO - An open source multi-tenant platform
 
Lesson No 10 The Oneness Truth
Lesson No  10   The Oneness TruthLesson No  10   The Oneness Truth
Lesson No 10 The Oneness Truth
 
Write bulletproof trigger code
Write bulletproof trigger codeWrite bulletproof trigger code
Write bulletproof trigger code
 
Lightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE EvolvedLightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE Evolved
 
Data mining and knowledge Discovery
Data mining and knowledge DiscoveryData mining and knowledge Discovery
Data mining and knowledge Discovery
 
Coding Apps in the Cloud with Force.com - Part I
Coding Apps in the Cloud with Force.com - Part ICoding Apps in the Cloud with Force.com - Part I
Coding Apps in the Cloud with Force.com - Part I
 
Diving Into Heroku Private Spaces
Diving Into Heroku Private SpacesDiving Into Heroku Private Spaces
Diving Into Heroku Private Spaces
 
Coding Apps in the Cloud with Force.com - Part 2
Coding Apps in the Cloud with Force.com - Part 2Coding Apps in the Cloud with Force.com - Part 2
Coding Apps in the Cloud with Force.com - Part 2
 
Parallel Programming
Parallel ProgrammingParallel Programming
Parallel Programming
 

Similar a Unit Testing: Not Just for Apex

Process Builder is an #AwesomeAdmin's Swiss Army Knife by Jennifer Lee
Process Builder is an #AwesomeAdmin's Swiss Army Knife by Jennifer LeeProcess Builder is an #AwesomeAdmin's Swiss Army Knife by Jennifer Lee
Process Builder is an #AwesomeAdmin's Swiss Army Knife by Jennifer LeeSalesforce Admins
 
Advanced Test Design Methods
Advanced Test Design MethodsAdvanced Test Design Methods
Advanced Test Design Methodssharon elgarat
 
Salesforce Integration Pattern Overview
Salesforce Integration Pattern OverviewSalesforce Integration Pattern Overview
Salesforce Integration Pattern OverviewDhanik Sahni
 
Process Automation Showdown Session 1
Process Automation Showdown Session 1Process Automation Showdown Session 1
Process Automation Showdown Session 1Michael Gill
 
DF2UFL 2012: Workflows: Making the MOST of Salesforce.com Native Functionality
DF2UFL 2012: Workflows: Making the MOST of Salesforce.com Native FunctionalityDF2UFL 2012: Workflows: Making the MOST of Salesforce.com Native Functionality
DF2UFL 2012: Workflows: Making the MOST of Salesforce.com Native FunctionalityJennifer Phillips
 
Universal Analytics Common Issues - MeasureFest
Universal Analytics Common Issues - MeasureFestUniversal Analytics Common Issues - MeasureFest
Universal Analytics Common Issues - MeasureFestdarafitzgerald
 
The Business of Flow - Point and Click Workflow Applications
The Business of Flow - Point and Click Workflow ApplicationsThe Business of Flow - Point and Click Workflow Applications
The Business of Flow - Point and Click Workflow ApplicationsDreamforce
 
DF19 South-East Florida Global Gathering
DF19 South-East Florida Global GatheringDF19 South-East Florida Global Gathering
DF19 South-East Florida Global GatheringLuis E. Luciani ☁
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationTechWell
 
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)Vivek Chawla
 
Five Enterprise Development Best Practices That EVERY Salesforce Org Can Use
Five Enterprise Development Best Practices That EVERY Salesforce Org Can UseFive Enterprise Development Best Practices That EVERY Salesforce Org Can Use
Five Enterprise Development Best Practices That EVERY Salesforce Org Can UseSalesforce Developers
 
Фреймворк автоматизированных критериев приёмки
Фреймворк автоматизированных критериев приёмкиФреймворк автоматизированных критериев приёмки
Фреймворк автоматизированных критериев приёмкиSQALab
 
Learn to see, measure and automate with value stream management
Learn to see, measure and automate with value stream managementLearn to see, measure and automate with value stream management
Learn to see, measure and automate with value stream managementLance Knight
 
Enough Blame for System Performance Issues
Enough Blame for System Performance IssuesEnough Blame for System Performance Issues
Enough Blame for System Performance IssuesMahesh Vallampati
 
Process Builder Automation and Considerations
Process Builder Automation and ConsiderationsProcess Builder Automation and Considerations
Process Builder Automation and ConsiderationsSathishkumar Periyasamy
 
20181016 Agile DC 2018 Conf Kanban Case Study for Energy Company
20181016 Agile DC 2018 Conf Kanban Case Study for Energy Company20181016 Agile DC 2018 Conf Kanban Case Study for Energy Company
20181016 Agile DC 2018 Conf Kanban Case Study for Energy CompanyCraeg Strong
 
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam BarnetSandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam BarnetSalesforce Admins
 

Similar a Unit Testing: Not Just for Apex (20)

Process Builder is an #AwesomeAdmin's Swiss Army Knife by Jennifer Lee
Process Builder is an #AwesomeAdmin's Swiss Army Knife by Jennifer LeeProcess Builder is an #AwesomeAdmin's Swiss Army Knife by Jennifer Lee
Process Builder is an #AwesomeAdmin's Swiss Army Knife by Jennifer Lee
 
Advanced Test Design Methods
Advanced Test Design MethodsAdvanced Test Design Methods
Advanced Test Design Methods
 
Salesforce Integration Pattern Overview
Salesforce Integration Pattern OverviewSalesforce Integration Pattern Overview
Salesforce Integration Pattern Overview
 
Process Automation Showdown Session 1
Process Automation Showdown Session 1Process Automation Showdown Session 1
Process Automation Showdown Session 1
 
DF2UFL 2012: Workflows: Making the MOST of Salesforce.com Native Functionality
DF2UFL 2012: Workflows: Making the MOST of Salesforce.com Native FunctionalityDF2UFL 2012: Workflows: Making the MOST of Salesforce.com Native Functionality
DF2UFL 2012: Workflows: Making the MOST of Salesforce.com Native Functionality
 
Universal Analytics Common Issues - MeasureFest
Universal Analytics Common Issues - MeasureFestUniversal Analytics Common Issues - MeasureFest
Universal Analytics Common Issues - MeasureFest
 
The Business of Flow - Point and Click Workflow Applications
The Business of Flow - Point and Click Workflow ApplicationsThe Business of Flow - Point and Click Workflow Applications
The Business of Flow - Point and Click Workflow Applications
 
DF19 South-East Florida Global Gathering
DF19 South-East Florida Global GatheringDF19 South-East Florida Global Gathering
DF19 South-East Florida Global Gathering
 
Specification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber ImplementationSpecification-by-Example: A Cucumber Implementation
Specification-by-Example: A Cucumber Implementation
 
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
Five Enterprise Best Practices That EVERY Salesforce Org Can Use (DF15 Session)
 
Five Enterprise Development Best Practices That EVERY Salesforce Org Can Use
Five Enterprise Development Best Practices That EVERY Salesforce Org Can UseFive Enterprise Development Best Practices That EVERY Salesforce Org Can Use
Five Enterprise Development Best Practices That EVERY Salesforce Org Can Use
 
Summer '18 Developer Highlights
Summer '18 Developer HighlightsSummer '18 Developer Highlights
Summer '18 Developer Highlights
 
Фреймворк автоматизированных критериев приёмки
Фреймворк автоматизированных критериев приёмкиФреймворк автоматизированных критериев приёмки
Фреймворк автоматизированных критериев приёмки
 
Learn to see, measure and automate with value stream management
Learn to see, measure and automate with value stream managementLearn to see, measure and automate with value stream management
Learn to see, measure and automate with value stream management
 
Enough Blame for System Performance Issues
Enough Blame for System Performance IssuesEnough Blame for System Performance Issues
Enough Blame for System Performance Issues
 
Agile testing
Agile testingAgile testing
Agile testing
 
Process Builder Automation and Considerations
Process Builder Automation and ConsiderationsProcess Builder Automation and Considerations
Process Builder Automation and Considerations
 
20181016 Agile DC 2018 Conf Kanban Case Study for Energy Company
20181016 Agile DC 2018 Conf Kanban Case Study for Energy Company20181016 Agile DC 2018 Conf Kanban Case Study for Energy Company
20181016 Agile DC 2018 Conf Kanban Case Study for Energy Company
 
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam BarnetSandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
 
DevOps and Audit
DevOps and AuditDevOps and Audit
DevOps and Audit
 

Más de Salesforce Developers

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSalesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceSalesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base ComponentsSalesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsSalesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaSalesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentSalesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsSalesforce Developers
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsSalesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsSalesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and TestingSalesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilitySalesforce Developers
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce dataSalesforce Developers
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionSalesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPSalesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceSalesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureSalesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DXSalesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectSalesforce Developers
 

Más de Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 

Último (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

Unit Testing: Not Just for Apex

  • 1. Unit Testing More than Apex Testing the Declarative Side of the Salesforce1 Platform ​ Mike Chale ​ Senior Developer ​ @Trifecta ​ @mike_chale ​ 
  • 2. Deliver consistent customer experiences across web, mobile, and eCommerce platforms that are fully integrated into your business systems. ​ 20+ Years developing enterprise solutions, primarily focused on commerce ​ 100+ Salesforce Certifications, including a Salesforce MVP Trifecta Commerce – Available on the AppExchange ​ Native app, streamlines order entry supporting B2B and B2B2C commerce. Top Industries Served: ​ Manufacturing/Distribution ​ CPG/Retail ​ Life Sciences ​ Hospitality and Entertainment Who is Trifecta? Visit our booth – #2021 Moscone North
  • 3. Unit testing has one job . . . Source: https://www.pinterest.com/pin/460141286900183385/
  • 4. 1.  Ensure customizations work as expected 2.  Verify edge cases 3.  Make changes confidently 4.  Preserve knowledge Why Unit Test?
  • 5. When I saw the light. . . ​ . . . this was step 1 of a 3 step field update process
  • 6. 1.  Change Management 2.  Declarative features replacing code 3.  Save time Why Unit Test Metadata?
  • 7. 1.  Verify sObject rules 1.  Required fields 2.  Lookup filters 3.  Validation rules Unit Testing Metadata
  • 8. §  Leads are converted without contact information! §  Need company size on Lead for classification §  Accounts have their Key Contact outside of the company Sample Request #1
  • 10. 1.  Verify sObject rules 2.  Verify critical processes Unit Testing Metadata
  • 11. 1.  Are the entry criteria working as expected? 2.  Is it going to the correct person/people? 3.  Check all branches Verifying Approval Processes
  • 12. §  All “big deals” need to be approved §  Deals worth at least $50,000 go to manager §  Deals over $100,000 require secondary approval Sample Request #2
  • 13. Demo
  • 14. 1.  Verify sObject rules 2.  Verify critical processes 3.  Verify complex Process Builder 1.  Post to Chatter 2.  Auto-submit Approval Unit Testing Metadata
  • 15. §  Processes can have multiple branches §  Each branch can perform multiple steps §  Post to Chatter §  Update self / related records §  Submit for Approval §  Invoke Apex and Flows Testing Process Builder
  • 16. §  Approval Process is great! §  Can the Opportunity be submitted automatically? §  And @mention the manager Sample Request #3
  • 17. Demo
  • 18. 1.  Verify sObject rules 2.  Verify critical processes 3.  Verify complex Process Builder 1.  Post to Chatter 2.  Auto-submit Approval 3.  Update and create records Unit Testing Metadata
  • 19. §  Need reminders! §  Can we automatically convert an Opportunity to an Order? §  And create the Contract? Sample Request #4
  • 20. Demo
  • 21. §  Complex orgs have many interactions §  Workflows and Process Builder can be complex §  Save time with regression testing Recap
  • 22. §  Presentation and sample code - https://github.com/chalemic/UnitTestingMoreThanApex §  How to Write Good Unit Tests - https://developer.salesforce.com/page/How_to_Write_Good_Unit_Tests §  Testing Best Practices - https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/ apex_testing_best_practices.htm §  Apex Approval Processing Example - https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/ apex_process_example.htm §  Apex Lead Convert Class - https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/ apex_dml_convertLead.htm Resources