SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Spock data tables plugin
for IntelliJ
+
How to create your own
plugin
@alberto_deavila
Team Lead @ Salenda
We help customers
reach their potential
with Atlassian tools
Global reach
& support
London UK
Dallas USA
Madrid Spain
Tallin Estonia
New York USA
San Diego USA
Toronto Canada
Montreal Canada
Springfield, MO USA
Leamington Spa UK
Kuala Lumpur Malasia
Why to create Spock data
table plugin?
Problem #1
Problem #2
Problem #3
Solution
Why? droidName | createMoreFilms | createJarJarBinks | darthVaderLives | babyJodaAppears | leiaIgnoresHan
'R2-D2' | false | false | false | true | false
'R2-D2' | false | false | false | true | true
'R2-D2' | false | false | true | true | false
'R2-D2' | false | false | true | true | true
'R2-D2' | false | true | false | true | false
'R2-D2' | false | true | false | true | true
'R2-D2' | false | true | true | true | false
'R2-D2' | false | true | true | true | true
'R2-D2' | true | false | false | true | false
'R2-D2' | true | false | false | true | true
'R2-D2' | true | false | true | true | false
'R2-D2' | true | false | true | true | true
'R2-D2' | true | true | false | true | false
'R2-D2' | true | true | false | true | true
'R2-D2' | true | true | true | true | false
'R2-D2' | true | true | true | true | true
'C3P0' | false | false | false | false | false
'C3P0' | false | false | false | false | true
'C3P0' | false | false | false | true | false
'C3P0' | false | false | false | true | true
'C3P0' | false | false | true | false | false
'C3P0' | false | false | true | false | true
'C3P0' | false | false | true | true | false
Problem #1
Problem #2
Why?
Problem #3
Solution
void “Sum 2 values are equals to sum tho others"() {
expect: ‘the sum must be equals‘
a + b == c + d
where:
a | b | c | d
0 | 0 | 0
1 | 1 | 2
0 | 1 | 1
1 | 0 | 1
2 | 2 | 4
4 | 5 | 9
3 | 3 | 6
3 | 0 | 3
2 | 2 | 4
5 | 1 | 6
1 | 5 | 6
4 | 4 | 8
}
Problem #1
Problem #3
Why?
Problem #2
Solution
void "element #element is contained by the list #list is #contained"() {
expect: 'check if the list contains the element'
list.contains(element) == contained
where:
element | list | contained
}
Creating a tool to do the job
Problem #1
Why?
Problem #2
Problem #3
Solution
Download it from
IDE plugins section
Find it on Jetbrains plugins site!
Check out the
code
Let see in action
Next steps
Send JAR to your teammates
Create a Jetbrains account,
upload the plugin and wait
to be approved
Publish plugin
You just need to package
your plugins, send to your
teammates and they need
to Install plugin from disk
Distribute your plugin
Compatibility check
rebrand.ly/plugin-resources
Resources
We are hiring!
rebrand.ly/adaptavist-hiring
Questions

Mais conteúdo relacionado

Mais de Alberto De Ávila Hernández

Nitro for your Grails App: how to improve performance. Greach '18
Nitro for your Grails App: how to improve performance. Greach '18Nitro for your Grails App: how to improve performance. Greach '18
Nitro for your Grails App: how to improve performance. Greach '18Alberto De Ávila Hernández
 
Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...
Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...
Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...Alberto De Ávila Hernández
 

Mais de Alberto De Ávila Hernández (6)

Graalvm with Groovy and Kotlin - Madrid GUG 2019
Graalvm with Groovy and Kotlin - Madrid GUG 2019Graalvm with Groovy and Kotlin - Madrid GUG 2019
Graalvm with Groovy and Kotlin - Madrid GUG 2019
 
Graalvm with Groovy and Kotlin - Greach 2019
Graalvm with Groovy and Kotlin - Greach 2019Graalvm with Groovy and Kotlin - Greach 2019
Graalvm with Groovy and Kotlin - Greach 2019
 
Let Codenarc check if you write good Groovy code
Let Codenarc check if you write good Groovy codeLet Codenarc check if you write good Groovy code
Let Codenarc check if you write good Groovy code
 
Nitro for your Grails App: how to improve performance. Greach '18
Nitro for your Grails App: how to improve performance. Greach '18Nitro for your Grails App: how to improve performance. Greach '18
Nitro for your Grails App: how to improve performance. Greach '18
 
Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...
Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...
Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...
 
De Java a Swift pasando por Groovy
De Java a Swift pasando por GroovyDe Java a Swift pasando por Groovy
De Java a Swift pasando por Groovy
 

Último

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Último (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
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
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Spock data tables plugin for IntelliJ + How to create you own plugin

  • 1. Spock data tables plugin for IntelliJ + How to create your own plugin @alberto_deavila Team Lead @ Salenda
  • 2.
  • 3. We help customers reach their potential with Atlassian tools
  • 4. Global reach & support London UK Dallas USA Madrid Spain Tallin Estonia New York USA San Diego USA Toronto Canada Montreal Canada Springfield, MO USA Leamington Spa UK Kuala Lumpur Malasia
  • 5. Why to create Spock data table plugin?
  • 6. Problem #1 Problem #2 Problem #3 Solution Why? droidName | createMoreFilms | createJarJarBinks | darthVaderLives | babyJodaAppears | leiaIgnoresHan 'R2-D2' | false | false | false | true | false 'R2-D2' | false | false | false | true | true 'R2-D2' | false | false | true | true | false 'R2-D2' | false | false | true | true | true 'R2-D2' | false | true | false | true | false 'R2-D2' | false | true | false | true | true 'R2-D2' | false | true | true | true | false 'R2-D2' | false | true | true | true | true 'R2-D2' | true | false | false | true | false 'R2-D2' | true | false | false | true | true 'R2-D2' | true | false | true | true | false 'R2-D2' | true | false | true | true | true 'R2-D2' | true | true | false | true | false 'R2-D2' | true | true | false | true | true 'R2-D2' | true | true | true | true | false 'R2-D2' | true | true | true | true | true 'C3P0' | false | false | false | false | false 'C3P0' | false | false | false | false | true 'C3P0' | false | false | false | true | false 'C3P0' | false | false | false | true | true 'C3P0' | false | false | true | false | false 'C3P0' | false | false | true | false | true 'C3P0' | false | false | true | true | false
  • 7. Problem #1 Problem #2 Why? Problem #3 Solution void “Sum 2 values are equals to sum tho others"() { expect: ‘the sum must be equals‘ a + b == c + d where: a | b | c | d 0 | 0 | 0 1 | 1 | 2 0 | 1 | 1 1 | 0 | 1 2 | 2 | 4 4 | 5 | 9 3 | 3 | 6 3 | 0 | 3 2 | 2 | 4 5 | 1 | 6 1 | 5 | 6 4 | 4 | 8 }
  • 8. Problem #1 Problem #3 Why? Problem #2 Solution void "element #element is contained by the list #list is #contained"() { expect: 'check if the list contains the element' list.contains(element) == contained where: element | list | contained }
  • 9. Creating a tool to do the job Problem #1 Why? Problem #2 Problem #3 Solution
  • 10. Download it from IDE plugins section
  • 11. Find it on Jetbrains plugins site!
  • 13. Let see in action
  • 15. Send JAR to your teammates Create a Jetbrains account, upload the plugin and wait to be approved Publish plugin You just need to package your plugins, send to your teammates and they need to Install plugin from disk Distribute your plugin