Re: unit--, a unit test framework for C++
Phlip wrote:
VvanN wrote:
I'd like to intruduce a new unit test framework for C++
freely available at:
http://unit--.sourceforge.net/
It does not need bothering test registration, here is an example
Righteous. CppUnit mires itself in endless test registration issues, instead
of simply using macros to achieve the Test Collector pattern.
// --- begin code ---
#include "unit--.h"
testSuite(MySuite);
testCase(CompareCase, MySuite)
{
int x = 1;
int y = x + 2;
assertTrue(x < y);
}
// --- end code ---
Suppose I had two suites and wanted to run the same case over both suites?
http://c2.com/cgi/wiki?AbstractTest
Suppose a test case uses std::basic_string<>. How would I run the test case
twice, once with char and again with wchar_t?
we might consider that they are different test cases,
but they have code in common.
"extract method"
(http://www.refactoring.com/catalog/extractMethod.html)
could work for this scenario.
assertTrue() can effect in functions invoked by a testCase
here is an example:
// --- begin code ---
#include <vector>
#include <numeric>
#include <algorithm>
#include "../unit--.h"
testSuite(TemplateSuite)
template <typename T>
void testAlgorithms()
{
using namespace std;
using namespace unit_minus;
vector<T> ve(100, 1);
partial_sum(ve.begin(), ve.end(), ve.begin());
assertTrue(ve.size() > 0);
assertTrue(1 == ve[0]);
for (unsigned i = 1; i < ve.size(); ++i) {
assertTrue(ve[i - 1] + 1 < ve[i]);
}
}
namespace {
testCase(IntCase, TemplateSuite)
{
testAlgorithms<int>();
}
testCase(UnsignedCase, TemplateSuite)
{
testAlgorithms<unsigned>();
}
} // namespace
// --- end code ---
besides, unit-- is implemented entirely in std C++, thus is portable
across different platforms and compilers
Contrarily, at error time, your editor should present the option to navigate
to a failure, the same as syntax errors.
--
Phlip
http://www.greencheese.org/ZeekLand <-- NOT a blog!!!