扩展测试确认类型:从基础到高级的C++测试实战
1. 解决行号问题
在测试过程中,设置预期失败消息时会遇到行号问题。由于行号是错误消息的一部分,为了让测试通过,需要在预期失败消息中包含行号。然而,当测试位置变动或其他测试增减时,行号会改变,这就使得手动更新预期错误消息变得繁琐且不必要。
为了解决这个问题,我们采用重构的方法。重构不会引入新的行为,并且使用测试驱动开发(TDD)能帮助我们安全地进行重构,因为已有测试可以验证代码是否有变化。
具体操作步骤如下:
1. 在 Test.cpp
的 ConfirmException
基类中添加行号信息:
class ConfirmException
{
public:
ConfirmException (int line)
: mLine(line)
{ }
virtual ~ConfirmException () = default;
std::string_view reason () const
{
return mReason;
}
int line () const
{
return mLine;
}
protected:
std::string mReason;
int mLine;
};
- 在
runTests
函数中,从ConfirmExce