9

我正在尝试使用 RAD Studio XE2 附带的 DUnit 对 Firemonkey 应用程序 (C++) 进行单元测试。

问题是,DUnit 是一个 VCL 项目,这使我无法在测试项目中包含 Firemonkey 单元表单(例如:UfrmMain.h)。

即使我将 Visual 与 Logic(MultiTier/MVC)分开,我也不能将任何 Firemonkey 库包含到我的类中(有时这会很有用,当有一个类“CustomDatabase”具有 TConnection 类型的对象时,它只可用在 Firemonkey -当然只是一个例子)。

当我完全分离 firemonkey 代码并将其保留在表单上时,测试是可能的,并且逻辑/数据保留在纯 C++ 代码的类中。

那么,这个“障碍”其实是好事吗?强迫我使用 MultiTier/MVC?(C++ 中的这个东西对我来说是新的)或者我应该寻找单元测试的替代方案,让我也可以测试表单?

(你也可以推荐我在 github 上的一些 C++ 项目或以上述方式分离的代码示例,我可以在哪里依赖?)

4

1 回答 1

3

一种可能的方法是使用TextTestRunner而不是GUITestRunner. 我从来没有真正尝试过这个,但我认为TextTestRunner不使用任何 VCL 单元是很合理的,或者至少它使用的东西很容易被删除。确实,对源代码的快速扫描表明这将起作用。

于 2012-03-02T13:32:00.050 回答