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

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

即使我将Visual with Logic(MultiTier/MVC)分开,也无法将任何Firemonkey库包含到我的类中(有时,这在类“CustomDatabase”的对象类型为TConnection的情况下很有用),该类仅可用在Firemonkey中-当然只是的一个示例)。

当我完全分离firemonkey代码并将其保留在窗体上,并且逻辑/数据使用纯C++代码保存在类上时,就可以进行测试。

那么,这种“障碍”实际上是一件好事吗?强制我使用MultiTier/MVC吗? (C++中的这个东西对我来说是新的)
还是我应该寻找一种替代的单元测试,也可以让我测试表格?

(您还可以向我推荐一些在github上的C++项目或代码示例,这些代码以上述方式分开了,我可以依靠它进行依赖吗?)

最佳答案

一种可能的方法是使用TextTestRunner而不是GUITestRunner。我从未真正尝试过此操作,但我认为TextTestRunner不使用任何VCL单元,或者至少可以很容易地将其使用的内容合理地删除,这是很合理的。确实,对源代码进行快速扫描就可以证明这是可行的。

关于delphi - 对Firemonkey应用程序进行单元测试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9534090/

10-12 21:16