Báo cáo thất bại trong thử nghiệm CppUnit được thực hiện thông qua ném của một kiểu tùy chỉnh ngoại lệ. Chúng tôi sẽ gọi số CppUnitException
ở đây để đơn giản.
CPPUNIT_ASSERT_THROW
là một macro mà sẽ mở rộng ra một cái gì đó về cơ bản đây là:
try
{
expression;
throw CppUnitException("Expected expression to throw");
}
catch(const ExceptionType & e)
{
}
Nếu expression
ném (như chúng ta mong đợi nó), chúng tôi rơi vào khối catch
mà không làm gì.
Nếu expression
thực hiện không ném, thực hiện tiếp tục đến dòng mã ném CppUnitException
sẽ kích hoạt lỗi kiểm tra.
Tất nhiên, việc triển khai macro CPPUNIT_ASSERT_THROW
thực sự là một chút fancier để thông tin về dòng và tệp cũng được báo cáo, nhưng đó là ý chính của cách hoạt động.
Nguồn
2010-04-23 09:26:53