我已经为游戏引擎编写了自己的访问层。有一个 GameLoop 每帧都会被调用,让我处理自己的代码。我能够做具体的事情并检查这些事情是否发生。以一种非常基本的方式,它可能如下所示:
void cycle()
{
//set a specific value
Engine::setText("Hello World");
//read the value
std::string text = Engine::getText();
}
Engine
我想通过编写自动化测试来测试我的层是否正常工作。我在使用 Boost Unittest Framework 进行类似这样的简单比较测试方面有一些经验。
问题是,我希望引擎做的一些事情只是在调用cycle()
. 所以直接调用Engine::getText()
之后Engine::setText(...)
会返回一个空字符串。如果我等到下一次调用cycle()
正确的值会被返回。
我现在想知道如果无法在同一个周期中处理它们,我应该如何编写测试。有没有最佳实践?是否可以在这样的环境中使用 Boost Unittest Framework 给出的“传统测试”方法?是否有针对这种特殊情况的其他框架?
我在这里的所有内容都使用 C++,但我可以想象有与编程语言无关的答案。
更新:无法访问Engine
外部cycle()