Moving blog to a new address

I am moving my blog to a new address so that I have a better control of the blog and the spam. The new blog is available at and the RSS feed is at All the current content will remain here but I am not going to answer more comments or post new posts…


SysTest part VI.: Code coverage

In this post I want to describe code coverage module in SysTest framework. Let’s have a simple calculator class (calculating area): public class SimpleCalc { public int square(int _a) { int square = 0; ; if (_a > 0) { square = _a * _a; } return square; } public int rectangle(int _a, int _b)…


I’m back

I’m very sorry for being quiet for such a long time. We had a coding milestone and I spent most of that time designing and implementing new importing functionality that we are going to use in the next release of Dynamics AX. I will soon finish the SysTest series with the post about CodeCoverage. Later…


SysTest part V.: Test execution (results, runners and listeners)

In the series of previous posts I’ve covered TestClasses and TestSuites. You should already know how to create a TestClass and how to group your tests in TestSuites. In this post I’ll try to cover the test execution environment. Results and Runners You probably remember the following code: static void RunSimpleTests(Args _args) { SysTestSuite suite =…


SysTest on Channel9

Michael Fruergaard Pontoppidan demonstrates how to use SysTest in this Channel9 video: Dynamics AX 4.0 – Unit testing


SysTest part IV.: Test/Suite initialization and cleaning; Execution isolation

We already know how to create test suites. Today I would like to cover some additional reasons for creating test suites: initialization, cleaning and test execution isolation. Initialization and Clean up As long as our test class contains just one test method everything is fine. In that method we include all preparation steps as well…


Outbound web service (AIF)

In this post I’ll try to demonstrate how to use AIF outbound web service adapter. I’ll begin with building a sample web service implementing AIF SendMessage “interface”. We will validate the web service by building a test. For the end-to-end test we will need to deploy the web service to a real IIS server. When…


SysTest part III.: Introduction to test suites

In the first part I mentioned the following code: static void RunMySimpleTests(Args _args) { SysTestSuite suite = new SysTestSuite(classstr(MySimpleTests)); SysTestResult result = new SysTestResult(); ; result.addListener(new SysTestListenerPrint());; print result.getSummary(); pause; } Simple suites We didn’t discuss this code in detail and we will not cover all the aspects of this sample even today. We…


SysTest part II.: Exceptions

In this post I will try to describe exceptions handling using SysTest. Very often applications throw exceptions and we have to be able to handle these situations correctly in our UnitTests. Let’s say we have the following application class: public class ThrowingApp { public static ThrowingApp construct() { ; return new ThrowingApp(); } public void throwingErrorException()…


SysTest part I.: Assertions and test classes

In the next series of posts I will demonstrate and explain some of the basic as well as some more advanced features of SysTest. Test classes Let’s begin with a very simple test. To create a test, derive a class from SysTestCase class. This is all that is needed for SysTest to be able to…