{"id":73045,"date":"2020-09-08T13:00:41","date_gmt":"2020-09-08T13:00:41","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=idea&#038;p=73045"},"modified":"2020-09-05T05:21:14","modified_gmt":"2020-09-05T05:21:14","slug":"jetbrains-technology-day-for-java-bootiful-testing","status":"publish","type":"idea","link":"https:\/\/blog.jetbrains.com\/fr\/idea\/2020\/09\/jetbrains-technology-day-for-java-bootiful-testing","title":{"rendered":"JetBrains Technology Day for Java &#8211; Bootiful Testing"},"content":{"rendered":"<p>On the 10th July 2020, JetBrains hosted a Technology Day for Java. We had 10 presentations and the videos for them are <a href=\"https:\/\/pages.jetbrains.com\/technology-day-java-2020\" target=\"_blank\" rel=\"noopener\">available here<\/a>. Over the coming weeks, in no particular order, we&#8217;d like to share with you extra resources that our speakers kindly provided and any links to further reading or code samples.<\/p>\n<p>We hosted <a href=\"https:\/\/twitter.com\/starbuxman\" target=\"_blank\" rel=\"noopener\">Josh Long<\/a> talking to us about Test Driven Development (<a href=\"https:\/\/martinfowler.com\/bliki\/TestDrivenDevelopment.html\" target=\"_blank\" rel=\"noopener\">TDD<\/a>) and the confidence it brings you in knowing that you&#8217;re building the right thing according to the requirements. Josh showed us how we can use TDD in an incremental way to build our confidence and work faster with our new found skills. <\/p>\n<p>Josh looked at testing basic components, mocks, how to take advantage of test slices, and how to test web applications. We also looked at how to ensure that API producers and API consumers work well together using <a href=\"https:\/\/www.martinfowler.com\/articles\/consumerDrivenContracts.html\" target=\"_blank\" rel=\"noopener\">consumer driven contract<\/a> testing (CDCT) without sacrificing the testing pyramid for end-to-end integration tests.<\/p>\n<p>I love watching, and have the utmost respect for anyone who delivers any amount of live coding, and this was a masterclass in it. My biggest takeaways were:<\/p>\n<ul>\n<li>Red-Green coding is a Good Thing<\/li>\n<li>Only write as much production code as you need to make the test work<\/li>\n<li>Learn from the cycle time (go quickly and safely &#8211; and then learn from it)<\/li>\n<\/ul>\n<p><iframe loading=\"lazy\" title=\"Bootiful Testing, by Josh Long \/ JetBrains Technology Day for Java (2020)\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/RrgL7_AW6S4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p><strong>Further resources<\/strong><br \/>\n<a href=\"http:\/\/joshlong.com\/index.html\" target=\"_blank\" rel=\"noopener\">http:\/\/joshlong.com\/index.html<\/a> <\/p>\n<p><strong>Code from the session<\/strong><br \/>\n<a href=\"https:\/\/github.com\/joshlong\/bootiful-testing\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/joshlong\/bootiful-testing<\/a><\/p>\n<p><strong>What our audience thought of Josh&#8217;s presentation<\/strong><\/p>\n<blockquote class=\"twitter-tweet\">\n<p lang=\"en\" dir=\"ltr\">How fast you can get your software to production doesn&#8217;t matter, if the software is bad. Anyone can drive a Maserati or Ferrari into a wall. &#8211; <a href=\"https:\/\/twitter.com\/starbuxman?ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">@starbuxman<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/JBTechDayforJava?src=hash&amp;ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">#JBTechDayforJava<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/JetBrainsLovesJava?src=hash&amp;ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">#JetBrainsLovesJava<\/a>.<\/p>\n<p>\u2014 Marit van Dijk (@MaritvanDijk77) <a href=\"https:\/\/twitter.com\/MaritvanDijk77\/status\/1281501072826281984?ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">July 10, 2020<\/a><\/p><\/blockquote>\n<blockquote class=\"twitter-tweet\">\n<p lang=\"en\" dir=\"ltr\">During the <a href=\"https:\/\/twitter.com\/hashtag\/JetBrainsLovesJava?src=hash&amp;ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">#JetBrainsLovesJava<\/a> &#8220;JetBrains Technology Day for Java&#8221; <a href=\"https:\/\/twitter.com\/starbuxman?ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">@starbuxman<\/a> didn&#8217;t just demonstrate &#8220;Bootiful Testing&#8221;, he showed it live how to do TDD. Very insightful <a href=\"https:\/\/twitter.com\/trisha_gee?ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">@trisha_gee<\/a> <a href=\"https:\/\/twitter.com\/eMalaGupta?ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">@eMalaGupta<\/a> <a href=\"https:\/\/twitter.com\/jetbrains?ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">@jetbrains<\/a> <a href=\"https:\/\/twitter.com\/intellijidea?ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">@intellijidea<\/a>. Watch all sessions here <a href=\"https:\/\/t.co\/zxyN1cGb5k\" target=\"_blank\">https:\/\/t.co\/zxyN1cGb5k<\/a><\/p>\n<p>\u2014 Pat Wanjau (@patwanjau) <a href=\"https:\/\/twitter.com\/patwanjau\/status\/1281844778204893184?ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">July 11, 2020<\/a><\/p><\/blockquote>\n<blockquote class=\"twitter-tweet\">\n<p lang=\"en\" dir=\"ltr\">Live Coding is always hard but <a href=\"https:\/\/twitter.com\/starbuxman?ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">@starbuxman<\/a> has always cracked it it&#8217;s really nice seeing him get and fix errors live on screen so encouraging and wonderful session <br \/><a href=\"https:\/\/twitter.com\/hashtag\/JBTechDayforJava?src=hash&amp;ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">#JBTechDayforJava<\/a> <a href=\"https:\/\/twitter.com\/trisha_gee?ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">@trisha_gee<\/a><\/p>\n<p>\u2014 Austine Gwa (@AustineGwa) <a href=\"https:\/\/twitter.com\/AustineGwa\/status\/1281510148595429376?ref_src=twsrc%5Etfw\" target=\"_blank\" rel=\"noopener\">July 10, 2020<\/a><\/p><\/blockquote>\n","protected":false},"author":1150,"featured_media":73056,"comment_status":"closed","ping_status":"closed","template":"","categories":[4759,5088,1280,126],"tags":[6285,460,1131],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/idea\/73045"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/idea"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/idea"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/1150"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=73045"}],"version-history":[{"count":3,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/idea\/73045\/revisions"}],"predecessor-version":[{"id":73291,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/idea\/73045\/revisions\/73291"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/73056"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=73045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=73045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=73045"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=73045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}