Why write extra code? Wouldn’t that take extra time to write? Would that slow you down? Why not just run the application and test it like an end user?
Mosh Hamedani – Unit Testing for C# Developers
Picture this: you make a simple change to the code and suddenly realize that you created a dozen unexpected bugs. Sound familiar? You’re not alone!
Good news is, unit testing can make this a thing of the past.
Maybe you’ve heard of automated or unit testing before and you’re keen to learn more.
Or perhaps you’ve tried to learn it and got a bit lost or ended up with fat and fragile tests that got in the way and slowed you down.
Either way, what you need is a course that will teach you all you need to know about this essential skill – from the basics, right through to mastery level.
What is unit testing?
In a nutshell: it’s the practice of writing code to test your code and then run those tests in an automated fashion.
Why learn unit testing?
Why write extra code? Wouldn’t that take extra time to write? Would that slow you down? Why not just run the application and test it like an end user?
Thinking like this is the mistake lots of people make. I used to make it myself. I’ve had to learn the hard way!
I learned pretty fast that if you’re building a complex application or working on a legacy app, manually testing all the various functions is tedious and takes a significant amount of time.
As your application grows, the cost of manual testing grows exponentially. And you’re never 100% sure if you’ve fully tested all the edge cases. You’re never confident that your code really works until you release your software and get a call from your boss or an end user!
Several studies have shown that the later a bug is caught in the software development lifecycle, the more costly it is to the business.
Automated tests help you to catch bugs earlier in the software development lifecycle, right when you’re coding. These tests are repeatable. Write them once and run them over and over.
The benefits of using unit tests are:
help you to catch and fix bugs earlier, before releasing your app into production
help you to write better code with less bugs
help you to produce software with better design – extensible and loosely-coupled
give you rapid feedback and tell you if your code *really* works
force you to think of edge cases that you didn’t realize existed
test your code much faster
tell if you have broken any functionality as you write new code
allow you to refactor your code with confidence
act as documentation about what your code does
save you both time and money
A valuable skill for senior developers
More and more companies are recognizing the advantages of automated testing, that’s why it’s a must-have for senior coders. If you’re looking to reach the higher levels in your coding career, this course can help.
You don’t need any prior knowledge of automated testing. You only need 3 months of experience programming in C#.
With this course you’ll learn:
senior coder secrets – best practices to write great unit tests
tips and tricks to keep your tests clean, trustworthy and maintainable
the pitfalls to avoid – anti-patterns
how to refactor legacy, untestable code into loosely-coupled and testable code
all about dependency injection – the one thing every coder needs to know
the power of mocks – when and how to use them and when to avoid
You’ll get:
5.5 hours of HD video
tutorials and guidance from a senior coder with 15+ years’ experience
exercises with step-by-step solution
downloadable source code
lifetime access
access online or offline at any time on any device
certificate of completion to present to your current or prospective employer
Join 38388 happy students!
Your Instructor
Mosh Hamedani
Mosh Hamedani
Hi! My name is Mosh Hamedani. I’m a software engineer with two decades of experience. I’ve taught millions of people how to code and how to become professional software engineers through my online courses and YouTube channel.
I believe coding should be fun and accessible to everyone.
Get immediately download Mosh Hamedani – Unit Testing for C# Developers
Course Curriculum
Getting ed (45m)
What is Automated Testing (2:40)
Benefits of Automated Testing (2:37)
Types of Tests (4:00)
Test Pyramid (2:55)
The Tooling (2:52)
Source Code (0:15)
Writing Your First Unit Test (10:27)
Testing All the Execution Paths (5:22)
Refactoring with Confidence (2:14)
Using NUnit in Visual Studio (3:59)
What is Test-driven Development (3:19)
Course Structure (1:46)
Summary (0:41)
Follow Me Around
Fundamentals of Unit Testing (40m)
Introduction (0:47)
Characteristics of Good Unit Tests (2:03)
What to Test and What Not to Test (3:00)
Naming and Organizing Tests (2:36)
Introducing Rider (1:52)
Writing a Simple Unit Test (3:52)
Black-box Testing (4:43)
Set Up and Tear Down (3:36)
Parameterized Tests (3:25)
Ignoring Tests (1:33)
Writing Trustworthy Tests (6:11)
Developers Who Don’t Write Tests (3:51)
Summary (1:33)
Core Unit Testing Techniques (50m)
Introduction (0:32)
Testing Strings (5:50)
Testing Arrays and Collections (6:11)
Testing the Return Type of Methods (4:02)
Testing Void Methods (4:41)
Testing Methods that Throw Exceptions (4:10)
Testing Methods that Raise an Event (4:34)
Testing Private Methods (9:50)
Code Coverage (2:30)
Testing in the Real-world (2:32)
Summary (0:46)
Exercises (20m)
Exercise- FizzBuzz (1:19)
Solution- FizzBuzz (6:19)
Exercise- DemeritPointsCalculator (0:54)
Solution- DemeritPointsCalculator (9:43)
Exercise- Stack (0:49)
Solution- Stack (14:55)
Breaking the External Dependencies (1h)
Introduction (2:16)
Loosely-coupled and Testable Code (3:34)
Refactoring Towards a Loosely-coupled Design (9:42)
Dependency Injection via Method Parameters (5:09)
Dependency Injection via Properties (2:41)
Dependency Injection via Constructor (4:22)
Dependency Injection Frameworks (3:26)
Mocking Frameworks (1:55)
Creating Mock Objects Using Moq (6:47)
State-based vs Interaction Testing (1:54)
Testing the Interaction between Two Objects (3:40)
Fake as Little as Possible (3:10)
An Example of a Mock Abuse (4:54)
Who Should Write Tests (2:01)
Excercises (45m)
Exercise-Video Service (1:11)
Refactoring VideoService (5:47)
Testing VideoService (7:55)
Exercise- InstallerHelper (1:26)
Refactoring InstallerHelper (4:47)
Testing InstallerHelper (8:05)
Exercise- EmployeeController (2:37)
Refacatroing EmployeeController (5:24)
Testing EmployeeController (4:00)
Project- Testing BookingHelper
Introduction (2:12)
Test Cases (3:40)
Extracting IBookingRepository (7:44)
Writing the First Test (4:29)
Refactoring (7:50)
Writing the Second Test (1:27)
Fixing a Bug (3:43)
Writing Additional Tests (4:44)
Project – HouseKeeperHelper (50m)
Introduction (2:07)
Refactoring for Testability (9:32)
Fixing a Design Issue (2:59)
An Alternative Solution
Writing the First Interaction Test (7:40)
Keeping Tests Clean (5:42)
Testing that a Method is Not Called (5:37)
Another Interaction Test (7:31)
Extracting Helper Methods (8:02)
Testing Exceptions (3:34)
Frequently Asked Questions
When does the course and finish?
The course s now and never ends! It is a completely self-paced online course – you decide when you and when you finish.
How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like – across any and all devices you own.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.
Will this course be published on Udemy or Pluralsight?
No! Pluralsight owns content exclusively. At this stage, I don’t have any plans for publishing this course on Udemy, and if I do in the future, it’ll be a lightweight version of this course, not the one you see here.
Read more: https://archive.is/8tVlZ
Reviews
There are no reviews yet.