Refactor TestExceptions CheckEqual tests to use a fixture and add additional tests for std:: exceptions.
diff --git a/src/tests/TestExceptions.cpp b/src/tests/TestExceptions.cpp
index bf43152..753df10 100644
--- a/src/tests/TestExceptions.cpp
+++ b/src/tests/TestExceptions.cpp
@@ -76,31 +76,49 @@
CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
}
-TEST(CheckEqualFailsOnException)
+struct CheckEqualFixture
{
- bool failure = false;
+ CheckEqualFixture()
+ : reporter()
+ , testResults(&reporter)
+ , line(-1)
{
- RecordingReporter reporter;
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(ThrowingFunction(), 1);
- failure = (testResults.GetFailureCount() > 0);
}
- CHECK(failure);
+ void PerformCheckWithNonStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__;
+ }
+
+ void PerformCheckWithStdThrow()
+ {
+ UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
+ ScopedCurrentTest scopedResults(testResults, &testDetails);
+ CHECK_EQUAL(ThrowingStdExceptionFunction(), 123); line = __LINE__;
+ }
+
+ RecordingReporter reporter;
+ UnitTest::TestResults testResults;
+ int line;
+};
+
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnException)
+{
+ PerformCheckWithNonStdThrow();
+ CHECK(testResults.GetFailureCount() > 0);
}
-TEST(CheckEqualFailureBecauseOfExceptionContainsCorrectDetails)
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailsOnStdException)
{
- int line = 0;
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- UnitTest::TestDetails const testDetails("testName", "suiteName", "filename", -1);
- ScopedCurrentTest scopedResults(testResults, &testDetails);
+ PerformCheckWithStdThrow();
+ CHECK(testResults.GetFailureCount() > 0);
+}
- CHECK_EQUAL(ThrowingFunction(), 123); line = __LINE__;
- }
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionContainsCorrectDetails)
+{
+ PerformCheckWithNonStdThrow();
CHECK_EQUAL("testName", reporter.lastFailedTest);
CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
@@ -108,27 +126,35 @@
CHECK_EQUAL(line, reporter.lastFailedLine);
}
-TEST(CheckEqualFailureBecauseOfExceptionIncludesCheckContents)
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionContainsCorrectDetails)
{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(ThrowingFunction(), 123);
- }
+ PerformCheckWithStdThrow();
+
+ CHECK_EQUAL("testName", reporter.lastFailedTest);
+ CHECK_EQUAL("suiteName", reporter.lastFailedSuite);
+ CHECK_EQUAL("filename", reporter.lastFailedFile);
+ CHECK_EQUAL(line, reporter.lastFailedLine);
+}
+
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfExceptionIncludesCheckContents)
+{
+ PerformCheckWithNonStdThrow();
CHECK(strstr(reporter.lastFailedMessage, "ThrowingFunction()"));
CHECK(strstr(reporter.lastFailedMessage, "123"));
}
-TEST(CheckEqualFailureBecauseOfStandardExceptionIncludesWhat)
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStdExceptionIncludesCheckContents)
{
- RecordingReporter reporter;
- {
- UnitTest::TestResults testResults(&reporter);
- ScopedCurrentTest scopedResults(testResults);
- CHECK_EQUAL(ThrowingStdExceptionFunction(), 123);
- }
+ PerformCheckWithStdThrow();
+
+ CHECK(strstr(reporter.lastFailedMessage, "ThrowingStdExceptionFunction()"));
+ CHECK(strstr(reporter.lastFailedMessage, "123"));
+}
+
+TEST_FIXTURE(CheckEqualFixture, CheckEqualFailureBecauseOfStandardExceptionIncludesWhat)
+{
+ PerformCheckWithStdThrow();
CHECK(strstr(reporter.lastFailedMessage, "exception (Doh)"));
}