创建自己的测试

让我们往testbed中添加一个测试吧,这只是一个简单的例子,作为开始不会实现很多功能,但是作为一个例子我们会看到所有需要编辑和修改的地方。

首先我们需要一个Test类的子类来定义我们自己的测试。在Testbed/Tests文件夹下面,应该可以看到出现在testbed项目中名字相近的所有测试例子的.h头文件。在这个目录下添加你自己的.h头文件,取一个聪明的名字比如呃…FooTest。现在,我们将会创建一个只能在屏幕顶部显示文本的空例子。

#ifndef FOOTEST_H
#define FOOTEST_H
classFooTest : publicTest
{
public:
FooTest() { }//do nothing, no scene yet
voidStep(Settings* settings)
{
//run the default physics and rendering
Test::Step(settings);
//show some text in the main screen
m_debugDraw.DrawString(5, m_textLine,"Now we have a foo test");
m_textLine += 15;
}
staticTest* Create()
{
returnnew FooTest;
}
};
#endif

上面的类没有覆盖任何输入方法,也没有设置场景。仅覆盖了Step()方法,并使用父类的m_debugDraw变量来顺便在屏幕上输出一些信息。另一个父类的变量m_textLine用来设置文本输出的位置,如果你不想一直在顶部输出多行文本信息,你就应该这么做。Create()方法为testbed框架在必要的时候提供了自身测试类的实例。

下面添加至testbed,为同一目录下的TestEntries.cpp文件添加如下两行代码:

#include "FooTest.h"
{"Foo test", FooTest::Create}

这些已经存在的例子都会在这里一行行列出来。仔细看看这个文件你就会明白我是什么意思了(译者注:其实就是说所有新建的例子都会在这里添加到框架里)。

现在再次编译项目并且运行它。你应该可以在右侧的项目列表的最下方看到”Foo test”选项,当你选中它运行之后,大概看起来像是这个样子:

如果你想让你的测试例子在软件启动的时候作为默认的第一个,那么只要把FooTest::Create 这行代码放到列表的第一行就可以了。

打赏

发表评论

电子邮件地址不会被公开。