Code covered by the BSD License  

Highlights from
mlunit_2008a

image thumbnail
from mlunit_2008a by Christopher
A MATLAB unit test framework supporting new classdef files (r2008a)

TestSuiteResult
classdef TestSuiteResult < TestResult
    %  TESTSUITERESULT Summarizes results of all test cases in a suite.
    %
    % This class is part of the mlunit_2008a testing framework.
    %

    properties
    end

    methods
        function self = TestSuiteResult(varargin)
            self = self@TestResult(varargin{:});
        end

        function initialize(self)
            if isempty(self.test)
                error('Cannot initialize test result without test suite!');
            end

            self.testCount = 0;

            names = self.test.suite();
            for i = 1:length(names)
                name = names{i};
                clear(name);
                t = feval(name);
                child = t.getNewTestResult(self);
                child.initialize();
                self.testCount = self.testCount + child.testCount;
                self.children.(self.encodeName(name)) = child;
            end
        end

        function clearResults(self)
            self.failureCount = 0;
            self.successCount = 0;
            names = self.test.suite();
            for i = 1:length(names)
                name = self.encodeName(names{i});
                child = self.children.(name);
                child.clearResults();
            end
        end

        function tf = isSuite(self)
            tf = true;
        end

        function runTests(self)
            names = self.test.suite();
            for i = 1:length(names)
                name = self.encodeName(names{i});
                child = self.children.(name);
                child.runTests();
            end
        end

        function stopTests(self)
            names = self.test.suite();
            for i = 1:length(names)
                name = self.encodeName(names{i});
                child = self.children.(name);
                child.stopTests();
            end
        end
        
        function s = encodeName(self, name)
            s = strrep(name, '.', '_DOT_');
        end
        
        function name = decodeName(self, s)
            name = strrep(s, '_DOT_', '.');
        end        
    end


end

Contact us