...
This website contains affiliate links, which means we may earn a commission if you make a purchase through these links, at no additional cost to you. We only recommend products and services that we trust and believe will add value to our readers.

Unit Testing Principles, Practices, and Patterns: Effective testing styles, patterns, and reliable automation for unit testing, mocking, and integration testing with examples in C#

  • #image_title
  • #image_title
  • #image_title
  • #image_title
  • #image_title

  • Price: $49.99 - $39.61
    (as of Jun 06, 2026 15:13:04 UTC – Details)



    Radically improve your testing practice and software quality with new testing styles, good patterns, and reliable automation.

    Key Features
    A practical and results-driven approach to unit testing
    Refine your existing unit tests by implementing modern best practices
    Learn the four pillars of a good unit test
    Safely automate your testing process to save time and money
    Spot which tests need refactoring, and which need to be deleted entirely

    Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

    About The Book
    Great testing practices maximize your project quality and delivery speed by identifying bad code early in the development process. Wrong tests will break your code, multiply bugs, and increase time and costs. You owe it to yourself—and your projects—to learn how to do excellent unit testing.

    Unit testing Principles, Patterns and Practices teaches you to design and write tests that target key areas of your code including the domain model. In this clearly written guide, you learn to develop professional-quality tests and test suites and integrate testing throughout the application life cycle. As you adopt a testing mindset, you’ll be amazed at how better tests cause you to write better code.

    What You Will Learn

    Universal guidelines to assess any unit test
    testing to identify and avoid anti-patterns
    Refactoring tests along with the production code
    Using integration tests to verify the whole system

    This Book Is Written For
    For readers who know the basics of unit testing. Examples are written in C# and can easily be applied to any language.

    About the Author

    Vladimir Khorikov is an author, blogger, and Microsoft MVP. He has mentored numerous teams on the ins and outs of unit testing.

    Table of Contents:

    PART 1 THE BIGGER PICTURE

    1 ¦ The goal of unit testing
    2 ¦ What is a unit test?
    3 ¦ The anatomy of a unit test

    PART 2 MAKING YOUR TESTS WORK FOR YOU

    4 ¦ The four pillars of a good unit test
    5 ¦ Mocks and test fragility
    6 ¦ Styles of unit testing
    7 ¦ Refactoring toward valuable unit tests

    PART 3 INTEGRATION testing

    8 ¦ Why integration testing?
    9 ¦ Mocking best practices
    10 ¦ testing the database

    PART 4 UNIT testing ANTI-PATTERNS

    11 ¦ Unit testing anti-patterns

    Publisher ‏ : ‎ Manning
    Publication date ‏ : ‎ January 14, 2020
    Edition ‏ : ‎ First Edition
    Language ‏ : ‎ English
    Print length ‏ : ‎ 304 pages
    ISBN-10 ‏ : ‎ 1617296279
    ISBN-13 ‏ : ‎ 978-1617296277
    Item Weight ‏ : ‎ 1.1 pounds
    Dimensions ‏ : ‎ 7.38 x 0.7 x 9.25 inches
    Best Sellers Rank: #284,602 in Books (See Top 100 in Books) #16 in C# Programming (Books) #36 in Software testing #236 in Software Development (Books)
    Customer Reviews: 4.7 4.7 out of 5 stars (234) var dpAcrHasRegisteredArcLinkClickAction; P.when(‘A’, ‘ready’).execute(function(A) { if (dpAcrHasRegisteredArcLinkClickAction !== true) { dpAcrHasRegisteredArcLinkClickAction = true; A.declarative( ‘acrLink-click-metrics’, ‘click’, { “allowLinkDefault”: true }, function (event) { if (window.ue) { ue.count(“acrLinkClickCount”, (ue.count(“acrLinkClickCount”) || 0) + 1); } } ); } }); P.when(‘A’, ‘cf’).execute(function(A) { A.declarative(‘acrStarsLink-click-metrics’, ‘click’, { “allowLinkDefault” : true }, function(event){ if(window.ue) { ue.count(“acrStarsLinkWithPopoverClickCount”, (ue.count(“acrStarsLinkWithPopoverClickCount”) || 0) + 1); } }); });