Category Archives: programming

ApprovalTests > Customize output file names

By default ApprovalTests generate output file to the same location where test class resides, with the file name as ClassType.MethodName. This behaviour is configured in `UnitTestFrameworkNamer` class, that is default namer for ApprovalTests. Long test names issue Tests are usually … Continue reading

Posted in Unit test | Tagged , | Leave a comment

AutoFixture > Using [Frozen] attribute on test method parameter

[Frozen] attribute is used to freeze instances of objects. It is applied on test method parameters. We will consider simple examples with string comparison test. Without [Frozen] attribute Result: Failed Using [Frozen] attribute Applying [Frozen] on the first parameter of type … Continue reading

Posted in Unit test | Tagged , | Leave a comment

AutoFixture > Customize objects creation with ICustomization interface

In this post we will look at AutoFixture basic customization features starting with ICustomization interface. We will use following DateRange class as demonstration example. If we write test method using DateRange as parameter: Test will sometimes fail with “System.ArgumentExceptionFinish date … Continue reading

Posted in programming, Unit test | Tagged , | Leave a comment

Using discriminated unions to fix Liskov substitution principle violation

As an example of LSP violation, I will consider e-commerce payment system design. One needs to develop generic mechanism for multiple payment service providers (PSP) that are using on checkout step. From the requirements there are different kinds of PSP in terms of integration. … Continue reading

Posted in object-oriented-principles, software-patterns | Leave a comment

Tools and libraries to consider when writing autotests

Below is a summary of tools/libraries I have used to build large maintainable suite of auto tests on large web project. Test Framework XUnit xUnit.net is a developer testing framework, built to support Test Driven Development, with a design goal … Continue reading

Posted in Unit test | Tagged | Leave a comment