{"id":8262,"date":"2026-08-10T09:53:50","date_gmt":"2026-08-10T09:53:50","guid":{"rendered":"https:\/\/nokobox.com\/index.php\/item\/oreilly-unit-testing-principles-practices-and-patterns-video-edition-2021-5\/"},"modified":"2026-08-10T09:53:50","modified_gmt":"2026-08-10T09:53:50","slug":"oreilly-unit-testing-principles-practices-and-patterns-video-edition-2021-5","status":"publish","type":"digital_item","link":"https:\/\/nokobox.com\/index.php\/item\/oreilly-unit-testing-principles-practices-and-patterns-video-edition-2021-5\/","title":{"rendered":"Oreilly \u2013 Unit Testing Principles, Practices, and Patterns video edition 2021-5"},"content":{"rendered":"<div class=\"w-post-elm post_content\">\n<h2 style=\"text-align: left\"><span style=\"vertical-align: inherit\">Description<\/span><\/h2>\n<div class=\"presented-response-container ng-tns-c1308684303-164\" style=\"text-align: left\">\n<div class=\"response-container-content ng-tns-c1308684303-164\">\n<div class=\"response-content ng-tns-c1308684303-164\">\n<div class=\"markdown markdown-main-panel tutor-markdown-rendering\">\n<p data-sourcepos=\"5:1-6:316\"><span style=\"vertical-align: inherit\">Unit Testing Principles, Practices, and Patterns video edition. This course shows you how to improve your existing unit tests by implementing modern best practices. You\u2019ll learn which tests are working well, which need to be refactored, and which should be removed completely! Improve your test suite with new testing styles, good patterns, and reliable automated testing. This course helps developers improve the quality and speed of their projects by learning advanced unit testing principles and techniques. By eliminating unnecessary tests, refactoring existing tests, and using the right patterns, developers can create a complete test suite that gives them confidence that their code is working properly. This course also helps developers cultivate a test-driven mindset that leads to higher-quality code.<\/span><\/p>\n<h3 data-sourcepos=\"8:1-8:25\"><span style=\"vertical-align: inherit\">What you will learn:<\/span><\/h3>\n<ul data-sourcepos=\"9:1-13:0\">\n<li data-sourcepos=\"9:1-9:47\"><span style=\"vertical-align: inherit\">Universal guidelines for evaluating each unit test<\/span><\/li>\n<li data-sourcepos=\"10:1-10:43\"><span style=\"vertical-align: inherit\">Testing to identify and avoid weak patterns<\/span><\/li>\n<li data-sourcepos=\"11:1-11:33\"><span style=\"vertical-align: inherit\">Rebuilding tests with original code<\/span><\/li>\n<li data-sourcepos=\"12:1-13:0\"><span style=\"vertical-align: inherit\">Using integrated tests to verify the entire system<\/span><\/li>\n<\/ul>\n<h3 data-sourcepos=\"14:1-14:31\"><span style=\"vertical-align: inherit\">This course is suitable for people who:<\/span><\/h3>\n<ul data-sourcepos=\"15:1-17:0\">\n<li data-sourcepos=\"15:1-15:34\"><span style=\"vertical-align: inherit\">Know the basics of unit testing.<\/span><\/li>\n<li data-sourcepos=\"16:1-17:0\"><span style=\"vertical-align: inherit\">C# examples are applicable to any language.<\/span><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h3 style=\"text-align: left\"><span style=\"vertical-align: inherit\">Course details Unit Testing Principles, Practices, and Patterns video edition<\/span><\/h3>\n<ul style=\"text-align: left\">\n<li><span style=\"vertical-align: inherit\">Publisher: <\/span><a href=\"https:\/\/href.li\/?https:\/\/www.oreilly.com\/library\/view\/unit-testing-principles\/9781617296277VE\/?_gl=1*be0tx6*_ga*MTU4NjE0OTc3OC4xNzEyMjIyNDU3*_ga_092EL089CH*MTczNzQ3MDczMy4zMi4xLjE3Mzc0NzA3MzkuNTQuMC4w\" target=\"_blank\" rel=\"noopener\"><span style=\"vertical-align: inherit\">Oreilly<\/span><\/a><\/li>\n<li><span style=\"vertical-align: inherit\">Instructor: <\/span><a href=\"https:\/\/downloadlynet.ir\/tag\/vladimir-khoriko\/\"><span style=\"vertical-align: inherit\">Vladimir Khoriko<\/span><\/a><\/li>\n<li><span style=\"vertical-align: inherit\">Training level: Beginner to advanced<\/span><\/li>\n<li><span style=\"vertical-align: inherit\">Training duration: 7 hours and 20 minutes<\/span><\/li>\n<\/ul>\n<h3 style=\"text-align: left\"><span style=\"vertical-align: inherit\">Course topics<\/span><\/h3>\n<ul style=\"text-align: left\">\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Part 1 The bigger picture<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 1 The goal of unit testing<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 1 The goal of unit testing!<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 1 Using coverage metrics to measure test suite quality<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 1 Problems with coverage metrics<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 1 What makes a successful test suite?<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 2 What is a unit test?<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 2 The isolation issue: The classical take<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 2 The classical and London schools of unit testing<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 2 Contrasting the classical and London schools of unit testing<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 2 Integration tests in the two schools<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 3 The anatomy of a unit test<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 3 How large should each section be?<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 3 Exploring the xUnit testing framework<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 3 Naming a unit test<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 3 Refactoring to parameterized tests<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Part 2 Making your tests work for you<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 4 The four pillars of a good unit test<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 4 What causes false positives?<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 4 The intrinsic connection between the first two attributes<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 4 In search of an ideal test<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 4 Extreme case #3: Brittle tests<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 4 Exploring well-known test automation concepts<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 5 Mocks and testing fragility<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 5 Observable behavior vs. implementation details<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 5 The relationship between mocks and test fragility<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 5 The classical vs. London schools of unit testing, revisited<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 6 Styles of unit testing<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 6 Comparing the three styles of unit testing<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 6 Understanding functional architecture<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 6 Transitioning to functional architecture and output-based testing<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 6 Understanding the drawbacks of functional architecture<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 7 Refactoring towards valuable unit tests<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 7 Refactoring towards valuable unit tests!<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 7 Take 3: Removing complexity from the application service<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 7 Analysis of optimal unit test coverage<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 7 Using the CanExecute\/Execute pattern<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 7 Conclusion<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Part 3 Integration testing<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 8 Why integration testing?<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 8 Which out-of-process dependencies to test directly<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 8 Integration testing: An example<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 8 Using interfaces to abstract dependencies<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 8 Integration testing best practices<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 8 How to test logging functionality<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 8 Conclusion<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 9 Mocking best practices<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 9 Mocking best practices!<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 10 Testing the database<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 10 Database transaction management<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 10 Test data life cycle<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 10 Common database testing questions<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Part 4 Unit testing anti-patterns<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 11 Unit testing anti-patterns<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 11 Exposing private state<\/span><\/li>\n<li style=\"text-align: left\"><span style=\"vertical-align: inherit\">Chapter 11 Mocking concrete classes<\/span><\/li>\n<\/ul>\n<h3 style=\"text-align: left\"><span style=\"vertical-align: inherit\">Unit Testing Principles, Practices, and Patterns video edition course images<\/span><\/h3>\n<p style=\"text-align: left\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-959117 size-full\" src=\"https:\/\/downloadly.ir\/wp-content\/uploads\/2025\/01\/Unit-Testing-Principles-Practices-and-Patterns-Video-edition-1.png\" alt=\"Unit Testing Principles, Practices, and Patterns video edition\" width=\"1449\" height=\"490\"><\/p>\n<h3 style=\"text-align: left\"><span style=\"vertical-align: inherit\">Sample course video<\/span><\/h3>\n<div style=\"width: 640px;\" class=\"wp-video\"><span class=\"mejs-offscreen\">Video Player<\/span><\/p>\n<div id=\"mep_0\" class=\"mejs-container mejs-container-keyboard-inactive wp-video-shortcode mejs-video\" tabindex=\"0\" role=\"application\" aria-label=\"Video Player\" style=\"width: 640px; height: 360px; min-width: 217px;\">\n<div class=\"mejs-inner\">\n<div class=\"mejs-mediaelement\"><mediaelementwrapper id=\"video-152544-1\"><video class=\"wp-video-shortcode\" id=\"video-152544-1_html5\" width=\"640\" height=\"360\" preload=\"metadata\" src=\"https:\/\/dl.downloadly.ir\/Files\/Elearning\/Sample\/Unit_Testing_Principles_Practices_and_Patterns_video_edition_Downloadly.ir.mp4?_=1\" style=\"width: 640px; height: 360px;\"><source type=\"video\/mp4\" src=\"https:\/\/dl.downloadly.ir\/Files\/Elearning\/Sample\/Unit_Testing_Principles_Practices_and_Patterns_video_edition_Downloadly.ir.mp4?_=1\"><a href=\"https:\/\/dl.downloadly.ir\/Files\/Elearning\/Sample\/Unit_Testing_Principles_Practices_and_Patterns_video_edition_Downloadly.ir.mp4?nocache=1786111812154\">https:\/\/dl.downloadly.ir\/Files\/Elearning\/Sample\/Unit_Testing_Principles_Practices_and_Patterns_video_edition_Downloadly.ir.mp4<\/a><\/video><\/mediaelementwrapper><\/div>\n<div class=\"mejs-layers\">\n<div class=\"mejs-poster mejs-layer\" style=\"display: none; width: 100%; height: 100%;\"><\/div>\n<div class=\"mejs-overlay mejs-layer\" style=\"display: none; width: 100%; height: 100%;\">\n<div class=\"mejs-overlay-loading\"><span class=\"mejs-overlay-loading-bg-img\"><\/span><\/div>\n<\/div>\n<div class=\"mejs-overlay mejs-layer\" style=\"display: none; width: 100%; height: 100%;\">\n<div class=\"mejs-overlay-error\"><\/div>\n<\/div>\n<div class=\"mejs-overlay mejs-layer mejs-overlay-play\" style=\"width: 100%; height: 100%;\">\n<div class=\"mejs-overlay-button\" role=\"button\" tabindex=\"0\" aria-label=\"Play\" aria-pressed=\"false\"><\/div>\n<\/div>\n<\/div>\n<div class=\"mejs-controls\">\n<div class=\"mejs-button mejs-playpause-button mejs-play\"><button type=\"button\" aria-controls=\"mep_0\" title=\"Play\" aria-label=\"Play\" tabindex=\"0\"><\/button><\/div>\n<div class=\"mejs-time mejs-currenttime-container\" role=\"timer\" aria-live=\"off\"><span class=\"mejs-currenttime\">00:00<\/span><\/div>\n<div class=\"mejs-time-rail\"><span class=\"mejs-time-total mejs-time-slider\" role=\"slider\" tabindex=\"0\" aria-label=\"Time Slider\" aria-valuemin=\"0\" aria-valuemax=\"0\" aria-valuenow=\"0\" aria-valuetext=\"00:00\"><span class=\"mejs-time-buffering\" style=\"display: none;\"><\/span><span class=\"mejs-time-loaded\"><\/span><span class=\"mejs-time-current\"><\/span><span class=\"mejs-time-hovered no-hover\"><\/span><span class=\"mejs-time-handle\"><span class=\"mejs-time-handle-content\"><\/span><\/span><span class=\"mejs-time-float\"><span class=\"mejs-time-float-current\">00:00<\/span><span class=\"mejs-time-float-corner\"><\/span><\/span><\/span><\/div>\n<div class=\"mejs-time mejs-duration-container\"><span class=\"mejs-duration\">00:00<\/span><\/div>\n<div class=\"mejs-button mejs-volume-button mejs-mute\"><button type=\"button\" aria-controls=\"mep_0\" title=\"Mute\" aria-label=\"Mute\" tabindex=\"0\"><\/button><a href=\"javascript:void(0);\" class=\"mejs-volume-slider\" aria-label=\"Volume Slider\" aria-valuemin=\"0\" aria-valuemax=\"100\" role=\"slider\" aria-orientation=\"vertical\"><span class=\"mejs-offscreen\">Use Up\/Down Arrow keys to increase or decrease volume.<\/span><\/p>\n<div class=\"mejs-volume-total\">\n<div class=\"mejs-volume-current\" style=\"bottom: 0px; height: 100%;\"><\/div>\n<div class=\"mejs-volume-handle\" style=\"bottom: 100%; margin-bottom: -3px;\"><\/div>\n<\/div>\n<p><\/a><\/div>\n<div class=\"mejs-button mejs-fullscreen-button\"><button type=\"button\" aria-controls=\"mep_0\" title=\"Fullscreen\" aria-label=\"Fullscreen\" tabindex=\"0\"><\/button><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div style=\"text-align: left\">\n<h3><span style=\"vertical-align: inherit\">Installation Guide<\/span><\/h3>\n<p><span style=\"vertical-align: inherit\">After Extract, view with your favorite player.<\/span><\/p>\n<p><span style=\"vertical-align: inherit\">Subtitles: None<\/span><\/p>\n<p><span style=\"vertical-align: inherit\">Quality: 720p<\/span><\/p>\n<\/div>\n<h3 style=\"text-align: left\"><span style=\"vertical-align: inherit\">Download link<\/span><\/h3>\n<p style=\"text-align: left\"><a href=\"https:\/\/dl1.downloadly.ir\/Files\/Elearning\/Oreilly_Unit_Testing_Principles_Practices_and_Patterns_video_edition_2021-5_Downloadly.ir.rar?nocache=1786111811\"><span style=\"vertical-align: inherit\">Download file \u2013 714 MB<\/span><\/a><\/p>\n<p style=\"text-align: left\"><span style=\"vertical-align: inherit\">File(s) password: www.downloadly.ir<\/span><\/p>\n<h3 style=\"text-align: left\"><span style=\"vertical-align: inherit\">File size<\/span><\/h3>\n<p style=\"text-align: left\"><span style=\"vertical-align: inherit\">714 MB<\/span><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Description Unit Testing Principles, Practices, and Patterns video edition. This course shows you how to improve your existing unit tests by implementing modern<\/p>\n","protected":false},"author":1,"template":"","dgi_category":[10458],"dgi_tag":[73424,73425,73426,73427,73428,73429],"class_list":["post-8262","digital_item","type-digital_item","status-publish","has-post-thumbnail","hentry","dgi_category-video-tutorials","dgi_tag-course-unit-testing-principles-practices-and-patterns-video-edition","dgi_tag-download-course-unit-testing-principles-practices-and-patterns-video-edition","dgi_tag-download-unit-testing-principles-practices-and-patterns-video-edition","dgi_tag-free-download-unit-testing-principles-practices-and-patterns-video-edition","dgi_tag-free-unit-testing-principles-practices-and-patterns-video-edition","dgi_tag-vladimir-khoriko"],"_links":{"self":[{"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/digital_item\/8262","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/digital_item"}],"about":[{"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/types\/digital_item"}],"author":[{"embeddable":true,"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":0,"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/digital_item\/8262\/revisions"}],"wp:attachment":[{"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/media?parent=8262"}],"wp:term":[{"taxonomy":"dgi_category","embeddable":true,"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/dgi_category?post=8262"},{"taxonomy":"dgi_tag","embeddable":true,"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/dgi_tag?post=8262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}