{"id":116849,"date":"2021-02-17T11:42:04","date_gmt":"2021-02-17T10:42:04","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=clion&#038;p=116849"},"modified":"2021-03-02T17:07:00","modified_gmt":"2021-03-02T16:07:00","slug":"testing-superpowers-webinar-recording","status":"publish","type":"clion","link":"https:\/\/blog.jetbrains.com\/zh-hans\/clion\/2021\/02\/testing-superpowers-webinar-recording","title":{"rendered":"Testing Superpowers: Using CLion to Add Tests Easily \u2013 Webinar Recording"},"content":{"rendered":"<p>The recording of our webinar, <em>Testing Superpowers: Using CLion to Add Tests Easily<\/em>, with <a href=\"https:\/\/claremacrae.co.uk\/\" target=\"_blank\" rel=\"noopener\">Clare Macrae<\/a>, is now available. <a href=\"https:\/\/www.jetbrains.com\/community\/newsletters\/\" target=\"_blank\" rel=\"noopener\">Subscribe to our community newsletter<\/a> to receive notifications about future webinars.<\/p>\n<\/p>\n<p>This webinar was produced in response to a question someone asked in <a href=\"https:\/\/www.youtube.com\/watch?v=Ks37FFl1pzg\" target=\"_blank\" rel=\"noopener\">Arne Mertz\u2019s &quot;Refactoring C++ Code&quot; webinar<\/a>: &quot;What can we do if we don\u2019t have tests on the project and can\u2019t easily check the changes introduced by refactorings?&quot; Our speaker, <a href=\"https:\/\/twitter.com\/ClareMacraeUK\" target=\"_blank\" rel=\"noopener\">Clare Macrae<\/a>, is an independent consultant who helps teams streamline their work with legacy and hard-to-test C++ and Qt code. She is also a core contributor to the <a href=\"https:\/\/github.com\/approvals\/ApprovalTests.cpp\" target=\"_blank\" rel=\"noopener\">Approval Tests for C++ library<\/a>, which makes it really easy to cover legacy code with tests. In this one-hour webinar, she discusses how to add tests for untested code, what the Approval Test approach is, and how code coverage tools can guide your testing.<\/p>\n<p><iframe loading=\"lazy\" width=\"800\" height=\"450\" src=\"https:\/\/www.youtube.com\/embed\/w2CzYK5ZJys\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>Timeline:<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=0s\" target=\"_blank\" rel=\"noopener\">00:00<\/a> Webinar begins<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=113s\" target=\"_blank\" rel=\"noopener\">01:53<\/a> An Introduction from Clare<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=255s\" target=\"_blank\" rel=\"noopener\">04:15<\/a> Let\u2019s look at the code<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=444s\" target=\"_blank\" rel=\"noopener\">07:24<\/a> Dependencies used in the webinar<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=530s\" target=\"_blank\" rel=\"noopener\">08:50<\/a> Adding Catch2 tests to the project<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=1042s\" target=\"_blank\" rel=\"noopener\">17:22<\/a> Using Approval Test<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=1598s\" target=\"_blank\" rel=\"noopener\">26:38<\/a> Summing up the Approval Test approach<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=1965s\" target=\"_blank\" rel=\"noopener\">32:45<\/a> First QA session<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=2654s\" target=\"_blank\" rel=\"noopener\">44:14<\/a> Using built-in Code Coverage in CLion<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=2835s\" target=\"_blank\" rel=\"noopener\">47:15<\/a> C\/C++ Code Coverage plugin for CLion<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=3060s\" target=\"_blank\" rel=\"noopener\">51:00<\/a> Improving tests<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=3623s\" target=\"_blank\" rel=\"noopener\">01:00:23<\/a> Summary from Clare<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=3955s\" target=\"_blank\" rel=\"noopener\">01:05:55<\/a> Second QA session<br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=w2CzYK5ZJys&#038;t=4123s\" target=\"_blank\" rel=\"noopener\">01:08:43<\/a> Wrapping up the webinar<\/p>\n<p>Useful links:<\/p>\n<ul>\n<li>\nClare\u2019s <a href=\"https:\/\/claremacrae.co.uk\/\" target=\"_blank\" rel=\"noopener\">website<\/a> and <a href=\"https:\/\/twitter.com\/ClareMacraeUK\" target=\"_blank\" rel=\"noopener\">twitter account<\/a> in case you have more questions for her.\n<\/li>\n<li>\nThe <a href=\"https:\/\/github.com\/claremacrae\/commandline-videostore-cpp\" target=\"_blank\" rel=\"noopener\">code<\/a> used in the webinar.\n<\/li>\n<li>\n<a href=\"https:\/\/github.com\/catchorg\/Catch2\" target=\"_blank\" rel=\"noopener\">Catch2<\/a> on GitHub.\n<\/li>\n<li>\n<a href=\"https:\/\/github.com\/approvals\/ApprovalTests.cpp\" target=\"_blank\" rel=\"noopener\">Approval Tests for C++<\/a> on GitHub.\n<\/li>\n<li>\n<a href=\"https:\/\/www.jetbrains.com\/help\/clion\/unit-testing-tutorial.html#clion-integrations\" target=\"_blank\" rel=\"noopener\">Unit testing in CLion<\/a> \u2013 an article in the CLion\u2019s webhelp.\n<\/li>\n<li>\n<a href=\"https:\/\/www.jetbrains.com\/help\/clion\/code-coverage-clion.html\" target=\"_blank\" rel=\"noopener\">Code coverage with CLion<\/a> \u2013 a webhelp article.\n<\/li>\n<li>\n<a href=\"https:\/\/plugins.jetbrains.com\/plugin\/11031-c-c--coverage\" target=\"_blank\" rel=\"noopener\">C\/C++ Coverage for CLion<\/a> \u2013 a 3rd-party plugin.\n<\/li>\n<li>\nClare\u2019s <a href=\"https:\/\/claremacrae.co.uk\/blog\/2021\/02\/clion-webinar-code-and-slides\" target=\"_blank\" rel=\"noopener\">blog post<\/a> on the webinar with the links to the slides and some further explanations.\n<\/li>\n<\/ul>\n<p>We are very grateful to everyone who joined us for the live stream. It was our first YouTube-based webinar and we are very interested in getting your feedback on it! Please share your thoughts in the comments.<\/p>\n<p>Your CLion team<br \/>\n<em>JetBrains<\/em><br \/>\n<em>The Drive to Develop<\/em><\/p>\n","protected":false},"author":266,"featured_media":112293,"comment_status":"closed","ping_status":"closed","template":"","categories":[30],"tags":[6474,3581,207,6183],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/clion\/116849"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/clion"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/types\/clion"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/users\/266"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/comments?post=116849"}],"version-history":[{"count":4,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/clion\/116849\/revisions"}],"predecessor-version":[{"id":118905,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/clion\/116849\/revisions\/118905"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media\/112293"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/media?parent=116849"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/categories?post=116849"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/tags?post=116849"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/zh-hans\/wp-json\/wp\/v2\/cross-post-tag?post=116849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}