gpt4 book ai didi

c++ - CppUnit 如何实现异常测试

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:22:57 25 4
gpt4 key购买 nike

我知道 CppUnit 可以通过以下方式测试异常:

CPPUNIT_ASSERT_THROW(expression, ExceptionType);

谁能解释一下 CPPUNIT_ASSERT_THROW() 是如何实现的?

最佳答案

CppUnit 中的测试失败报告是通过抛出自定义异常类型来完成的。为简单起见,我们在此处将其称为 CppUnitException

CPPUNIT_ASSERT_THROW 是一个宏,它将扩展为本质上是这样的东西:

try
{
expression;
throw CppUnitException("Expected expression to throw");
}
catch( const ExceptionType & e )
{
}

如果 expression 抛出(正如我们所期望的那样),我们将陷入什么都不做的 catch block 中。

如果 expression 抛出,执行将继续到抛出 CppUnitException 的代码行,这将触发测试失败。

当然,CPPUNIT_ASSERT_THROW 宏的实现实际上有点花哨,因此还报告了行​​和文件信息,但这是其工作原理的一般要点。

关于c++ - CppUnit 如何实现异常测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2697380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com