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…


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…


SysTest quick start

Overview I am a big fan of TestDrivenDevelopment and I am trying to follow this approach for all my development. Unfortunately DynamicsAX didn’t have any UnitTest framework and thus it was difficult to use TestDrivenDevelopment. It was clear that we needed something in DynamicsAX and that’s why we now have SysTest. SysTest SysTest is a…


Unit testing in DynamicsAX

Microsoft DynamicsAX 4.0 introduced a new development feature to MorphX — UnitTesting. The framework is named SysTest and is very similar to all traditional UnitTesting frameworks. In a series a posts I will try to explain SysTest and I will show samples demonstrating how to work with the framework.