tools.hpp

来自「一个很好用的解析」· HPP 代码 · 共 73 行

HPP
73
字号
#ifndef TEST_HPP_INCLUDED#define TEST_HPP_INCLUDED#include <string>#include "xmlrpc-c/girerr.hpp"using girerr::error;class testSuite {/*----------------------------------------------------------------------------   This is a base class for a test suite.  Give the suite a name   (to be used in messages about it) and some test code via   virtual methods suiteName() and runtests(), respectively.   runtests() should throw either an 'error' object or an 'XmlRpcFault'   object if the test fails.  It should throw something else if the   test can't run.  It should throw nothing if the tests pass.   You don't normally keep an object of this class around.  You don't   even give it a name.  You simply refer to a literal object, like so:     myTestSuite().run(0)-----------------------------------------------------------------------------*/public:    virtual ~testSuite();    void run(unsigned int const indentation);    virtual void runtests(unsigned int const) {        throw(error("test suite does not have a runtests() method"));    };    virtual std::string suiteName() {        return "unnamed test suite";    }};void logFailedTest(const char * const fileName,               unsigned int const lineNum,               const char * const statement);errorfileLineError(std::string  const filename,              unsigned int const lineNumber,              std::string  const description);#define TEST(statement) \    do { \        if (!(statement)) \            logFailedTest(__FILE__, __LINE__, #statement); \    } while (0)#define TEST_PASSED() \    do { } while (0)#define TEST_FAILED(reason) \    do { \        logFailedTest(__FILE__, __LINE__, (reason)); \    } while (0)#define EXPECT_ERROR(statement) \    do { try { statement } catch (error) {break;} \      throw(fileLineError(__FILE__, __LINE__, "Didn't get expected error")); \    } while (0)#define trickToStraightenOutEmacsIndentation \;#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?