Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
June 18, 2021 11:56 am GMT

Tools o improve your unit test with .NET

Alt Text

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 to do download the Snippets in your Visual Studio

Alt Text

Use command bellow
1.xtestm [Tab] or
2.fact [Tab]

Then, this snippet expanded following C# code.

Alt Text

Alt Text

NBuilder

Is a library that allows you to rapidly create test data, automatically. Some examples below.

Alt Text

Alt Text

Its a great idea and facility so much if you need to generate a quantity of data for testing.

Faker.NET

This library is different the NBuilder, because if you want something witch looks like actual names, address, email, telephone, etc you can use Faker.NET

Alt Text

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 Coverlete Github

Lets first install the package coverlete in your test project in image bellow.

Alt Text

Now we can to configure the tests execute, for to generate the XML file format, for code coverage with the command and image bellow.

dotnet test --verbosity minimal --collect:"XPlat Code Coverage"

Alt Text

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.

Alt Text

Install Report Generator the command bellow.

dotnet tool install --global dotnet-reportgenerator-globaltool --version 4.8.6

Alt Text

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

Alt Text

Alt Text

As you can see, the report generator created files in which it shows the test coverage of your code.

Alt Text

Alt Text

Alt Text

Alt Text

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


Original Link: https://dev.to/jessicanathany/tools-o-improve-your-unit-test-with-net-1ekb

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To