Code covered by the BSD License  

Highlights from
mlunit_2008a

4.5

4.5 | 2 ratings Rate this file 16 Downloads (last 30 days) File Size: 38.8 KB File ID: #21888
image thumbnail

mlunit_2008a

by Christopher

 

25 Oct 2008 (Updated 15 Jul 2009)

A MATLAB unit test framework supporting new classdef files (r2008a)

| Watch this File

File Information
Description

mlunit_2008a originally began as an update to mlUnit (http://sourceforge.net/projects/mlunit/), also available from MATLAB Central file exchange. The purpose was to add support for the new "classdef" style classes in MATLAB 2008a. However, I got a bit carried away, and the "update" became more or less a complete rewrite.

In general, if you are comfortable with the "xUnit" style unit test frameworks (e.g., jUnit), then you'll be very comfortable with this tool. Creating tests involves subclassing a class named TestCase, then adding methods whose names begin with "test". Inside each method you can use the inherited validation methods (assert, assertEquals, assertNotEquals) to check for success or failure. All tests are run automatically and their results recorded and reported after the run.

The GUI is simple, but nice; it uses the undocumented uitree widget to give hierarchical test results, and you also get nice visual feedback from the icons and such. As with mlUnit, you click on failed tests to see the error messages and stacktrace; you can select a line in the stacktrace and click a button to open a code editor and place the cursor at that location in your code. You also get the ability to add tests via a multiselect file dialog, for quick and easy use.

For those of you who prefer to run headless, there is also a simple text test runner with a clear API.

A note of explanation: when I began this (soon after the 2008a release), I didn't realize that the mlUnit developers were also updating their code for the new style classes (mlUnit 2.0). As it turns out, I like my version better so I'm releasing it anyway :)

Warning: Uses the undocumented/unsupported uitree widget, which Mathworks warns may change or go away in a future release.

Acknowledgements
This submission has inspired the following:
Doctest - embed testable examples in your function's help comments
MATLAB release MATLAB 7.6 (R2008a)
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (2)
12 May 2009 Peter Manley-Cooke

Very good. Simple usage and clear results. Easy installation is a bonus. Dynamic test suite composition, good.

16 Jun 2011 Marcel

Verry good. Easy to use and helps to avoid bad surprises due to hidden bugs in many cases.

Please login to add a comment or rating.
Updates
15 Jul 2009

- now under BSD license
- fixed "clear classes" bug
- added support for packages

Tag Activity for this File
Tag Applied By Date/Time
development Christopher 27 Oct 2008 10:30:19
unit testing Christopher 27 Oct 2008 10:30:19
framework Cristina McIntire 27 Oct 2008 10:51:40
widget Cristina McIntire 27 Oct 2008 10:51:47
unit Nathan Thern 29 Jan 2009 11:21:09
units Nathan Thern 29 Jan 2009 11:21:09
dimension Nathan Thern 29 Jan 2009 11:21:09
unit conversion Nathan Thern 29 Jan 2009 11:21:09
dimensions Nathan Thern 29 Jan 2009 11:21:09
xunit Nathan Thern 29 Jan 2009 11:26:06
xunits Nathan Thern 29 Jan 2009 11:26:06
xunit Ryan Ollos 23 Sep 2009 16:22:24
unit test Ryan Ollos 23 Sep 2009 16:22:24
oop per isakson 10 Mar 2011 16:13:44

Contact us at files@mathworks.com