SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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

Más contenido relacionado

Más 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
 

Más 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

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
 
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
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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
 
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
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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
 
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
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Último (20)

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
 
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...
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech 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...
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 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
 
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
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

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