c++ - 单元/集成测试时间敏感的 C++ 代码

标签 c++ unit-testing testing integration-testing

有没有一种方法可以创建单元/集成测试,不仅可以测试正确性,还可以测试步骤是否在特定时间段内完成?

例如:

// MyTestSuite.h
#include <cxxtest/TestSuite.h>
class MyTestSuite : public CxxTest::TestSuite
{
    public:
    void testTimeCriticalFunction(void)
    {
        TS_ASSERT_EQUALS(timeCriticalFunction(), correctValue);

        // timeCriticalFunction() must correctly return within 5 milliseconds
        TS_ASSERT_DID_COMPLETE_WITHIN_MILLISECONDS(timeCriticalFunction(), 5);
    }
}

虽然该示例只有一个函数,但如果有一种方法可以将它们链接在一起以在更长的序列上执行集成测试,这样如果每个步骤都正确并在指定时间内完成,测试将返回 true,那将是理想的以及整个组。

首选亚毫秒精度,但典型的时间要求在 5-15 毫秒之间。

更新 1: 目标平台是 UNIX (Mac OS X)。精确的时间要求是由于问题域(通信)。

更新 2:鉴于评论,假设我专注于集成测试。

最佳答案

一般来说,将特定的时序要求(例如小粒度的要求)放在一起并不是一个好主意。由于您使用的是 OSX,因此您最多拥有一个软实时系统。 (如果您有硬实时要求,通用操作系统(如 OSX)不是答案。)可用的 CPU/CPU 内核数量有限。操作系统可以任意决定让您的线程进入休眠状态,即使您的进程/进程组以 super 用户身份运行且具有非常高的优先级。

关于c++ - 单元/集成测试时间敏感的 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6665554/

相关文章:

node.js - Nest.js 测试错误 : Using the "extends Logger" instruction is not allowed in Nest v8. 请改用 "extends ConsoleLogger"

javascript - 无法使用 Protractor 获取输入中的值

php - 将 PHPUnit 与 Selenium 结合使用,如何测试元素是否包含某些内容?

c++ - Qpid 质子 C++ - 质子::make_work

c++ - C++ 宏的可选参数

c++ - boost::program_options:如何获取应用程序名称?

java - 如何使用 XMLUnit 只比较文件的某些部分?

c++ - 设置全局区域设置时内存泄漏

python - 从 pytest fixture 返回多个对象

unit-testing - 如何测试windows phone 7 类库?