测试驱动开发:如何将时间腾出到代码之外

问题描述 投票:0回答:1

在我的 C++ 代码库中,我有一个类

PassiveBuzzer
,它在软件中模拟通过 PWM 线路驱动的有源蜂鸣器的行为。它可以配置模式,如 PWM 线的周期和占空比。构造函数采用“打开”时发出蜂鸣声的频率。构造函数还采用
Linux::PWM::Line
类型的对象,该对象派生自接口
PWM::Line
。因此,我可以轻松地在单元测试中模拟该对象。

为了打开和关闭被动蜂鸣器,我目前主要使用timerfd(带有C++包装类)。 但是,这使我无法很好地测试类的行为,因为 Timer 是在

PassiveBuzzer
类内部构造的,而不是传递给它。

我希望能够测试

PassiveBuzzer
类并让结果具有确定性(独立于系统负载和其他因素)。

允许对依赖时间触发行为的类进行确定性测试的常见方法有哪些?我如何在课堂之外腾出时间?

c++ linux timer
1个回答
0
投票

正如 Eljay 和 Pepijn Kramer 正确提到的那样,我应该将 Timer 作为构造函数参数传递给

PassiveBuzzer
类。谢谢!

© www.soinside.com 2019 - 2024. All rights reserved.