我目前正在尝试评估不同的测试框架。在使用模拟框架时(我倾向于 FakeIt,但 google mock 也很好),我知道您可以通过在调用函数之前和之后使用操作系统的计时器调用来滚动自己的“性能”测试来验证函数的性能。这不是我所追求的。
我所拥有的是在给定特定输入的情况下实现输出延迟的类。例如:
- 输入 1 从低到高
- 输出 1 在1.5 秒后从低电平变为高电平。
我希望能够做一些我指定边界的事情:
myMock.theInput();
EXPECT_CALL(myMock, theDelayedOutput())
.Times(1)
.Before(1.6sec)
.After(1.4sec);
为澄清起见,不支持Before
和行。After
这只是我喜欢的简单语法的一个例子。
是否可以在进行输入调用和检查之前在窗口中实现“延迟”功能EXPECT_CALL
?
这是其中的一部分——我仍然需要启动一个专有计时器。像这样的东西?
myMock.theInput();
windowSleep(1.4);
startTimer();
EXPECT_CALL(myMock, theDelayedOutput())
.Times(1)
endTimer();
ASSERT_TRUE(elapsedTime() <= 0.2);