Refactoring unit tests
Unit tests are code, and like other types of code, they can degrade in quality over time when not given proper respect and proactive refactoring.
Hence, when you see code smells such as duplicated code that appears in most of your tests, it’s a sign that your tests need to be refactored.
In this section, we’ll explore several ways of refactoring your test code.
Parameterizing tests with Theory and InlineData
When we think about the similarities between our two tests, they only vary based on the values being passed into the method we’re testing and the value we expect the result to be.
Thinking about our test method, this is a clear case where it’d be wonderful to have parameters that could go into one test method that could represent multiple unit tests, each testing something slightly different, but with similar code.
As you may recall from earlier, unit tests that use Fact
cannot have any parameters to them. However...