【发布时间】:2011-07-12 14:12:43
【问题描述】:
有没有办法创建单元/集成测试,不仅可以测试正确性,还可以测试步骤是否在特定时间段内完成?
例如:
// 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: 鉴于 cmets,假设我专注于 集成 测试。
【问题讨论】:
-
我可以建议你写一个单独的测试来报告操作是否足够快吗?理想情况下,每个单元测试只会因为一个原因而失败。否则,每次测试变红时,您都必须找出这一次失败的 n 个失败原因中的哪一个。
-
razlebe:感谢您的回复。你提出了一个有效的观点。
标签: c++ unit-testing testing integration-testing