0

如果我不能挑衅,如何使用 gtest 测试 try-catch 块(gmock 可用于此问题)std:string exceptions

int
Test::function_to_be_tested( std::string& url ) const
{  
    try
    {
        url.append( "?" );

    }
    catch( std::exception const& e ) {
        logger.log(LOG_ERROR, e.what());
        return -1;
    }
    return 0;
 }

我来自 Java 世界,在 Java 中我会String使用一些模拟框架进行模拟,然后spy附加append一个我自己的函数,它总是会抛出异常。这在 C++ (98) 中可行吗?

4

1 回答 1

1

即使在 Java 中,模拟String也会很棘手。在 C++ 中,忘记它。

相反,创建一个已经是max_size()字符长的字符串。append()应该抛出。

于 2013-09-05T16:34:15.823 回答