当然,您可以在测试课程中拥有尽可能多的插槽。但是迟早您需要将测试分开并将它们分组,因为您有太多测试无法将它们全部放在一个类中。你将不得不创建几个测试类。
函数的初衷QTEST_MAIN
是只运行一个测试。如果您想测试多个类并且可以相互独立地进行,您可以将它们放在单独的测试类中,QTEST_MAIN
为每个类添加一个宏并将每个类编译为单独的可执行文件。好处是,如果一个测试用例崩溃,其他测试继续正常运行。缺点是您需要一个测试运行器来运行所有测试并检查它们的结果,而 qtestlib 不提供运行器。您可以编写自己的跑步者或使用现有的跑步者之一(示例)。
选项包括:
- 遵守 QTestLib 的范式。将测试分开到不同的可执行文件,以防止由于其他测试而导致测试失败。
- 将所有测试存储在一个类中。如果您的应用程序不是很小,这将非常不方便。
- 使用自定义主函数手动运行所有测试。这不是很糟糕,但也很不方便,因为您需要手动列出测试类。
- 使用另一个测试库。我更喜欢谷歌测试。它比 qtestlib 强大得多,它支持死亡测试,它自动注册和运行测试并计算它们的结果。google test 没有这样的问题。请注意,您可以将许多有用的 qtestlib 功能(如
QSignalSpy
)与另一个测试框架一起使用。