Есть ли способ создания модульных / интеграционных тестов, которые не только проверяют правильность, но и проверяют, что шаги были выполнены в течение определенного периода времени?
Например:
// 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);
}
}
Хотя в качестве примера используется только одна функция, было бы идеально, если бы был способ объединить их в цепочку для проведения интеграционного тестирования на более длинной последовательности, чтобыtest вернул бы значение true, если бы каждый шаг был правильным и завершенным в течение указанного времени, а также всей группы.
Точность менее миллисекунды является предпочтительной, но типичные требования по времени составляют от 5 до 15 миллисекунд.
ОБНОВЛЕНИЕ 1: Целевая платформа - UNIX (Mac OS X).Точные требования к времени обусловлены проблемной областью (связь).
ОБНОВЛЕНИЕ 2: Учитывая комментарии, предположим, что я сосредоточен на интеграции тестировании.