In this article, I will show you some kind tools for you can write unit test better and make you job easier. In this case, I'm using here the Dotnet platform C# language. But first, let's understand some concepts.
Test stuntmen
First, what are test stuntmen? They are fake implementation the object real can be simulated the unit real or the object real.
Mock
Are what we are talking about here: objects pre-programmed with expectations which form a specification of the calls they are expected to receive.
Stubs
Provide canned answers to calls made during the test, usually not responding at all to anything outside what's programmed in for the test.
Fakes
Are objects actually have working implementations, but usually take some shortcut that makes them not suitable for production (an in-memory database is a good example).
Spies
Are stubs that also record some information based on how they were called. One form of this might be an email service that records how many messages it was sent.
Dummy
Are objects are passed around but never actually used. Usually, they are just used to fill parameter lists.
Fake objects actually have working implementations, but usually take some.
XUnit Code Snippets
If you use these "code snippets", you can save time coding/typing to create unit test code based on xUnit framework. You can use write the command below I will show two options.
You can download the Snippets in your Visual Studio
Use command below
1.xtestm [Tab] or
2.fact [Tab]
Then, this snippet expanded following C# code.
NBuilder
Is a library that allows you to rapidly create test data, automatically. Some examples below.
Its a great idea and helps facilitates the process if you need to generate a quantity of data for testing.
Faker.NET
This library is different the NBuilder, because if you want something which looks like actual names, address, email, telephone, etc you can use Faker.NET.
Coverlet
Coverlet is a cross platform code coverage framework for .NET, with support for line, branch and method coverage. It works with .NET Framework on Windows and .NET Core on all supported platforms.
Coverlet documentation reflect the current repository state of the features, not the released ones.
Check the changelog to understand if the documented feature you want to use has been officially released. You can see for more details in Coverlet Github
Let´s first install the package coverlet in your test project in image below.
Now we can configure the tests to execute, for to generate the XML file format, for code coverage with the command and image below.
dotnet test --verbosity minimal --collect:"XPlat Code Coverage"
The option --collect:”XPlat Code Coverage” will create the file coverage.cobertura.xml in a folder named identified by a GUID and located in the TestResults directory of the test project.
Install Report Generator the command below.
dotnet tool install --global dotnet-reportgenerator-globaltool --version 4.8.6
In the power shell open the folder where the xml file was generated, and write the command reportgenerator "-reports:coverage.cobertura.xml" "-targetdir:coveragereport" -reporttypes:Html
As you can see, the report generator created files in which it shows the test coverage of your code.
Conclusion
Whenever I can, I write an article to document my programs and processes so I don't forget. Here I have put some tools that I use in my personal projects and at work to improve the way I write my unit tests, and observe test coverage. I hope you enjoyed it and it helps you.
References
Martin Fowler - article MocksArentStubs
Documentation dotnet core unit testing code
Jerrie Pelser
Coverlate
Links
Unit Test project in Github
Mock4 Quickstart
NBuilder GitHub
Faker.NET
NBuilder documentation
XUnitCodeSnippets
Link package Moq
coverlet.msbuild
coverlet-coverage
Top comments (0)