测试Firemonkey应用的单元测试

9
我正在尝试使用RAD Studio XE2提供的DUnit对Firemonkey应用程序(C++)进行单元测试。但是问题在于,DUnit是一个VCL项目,这使得我无法将Firemonkey Unit Forms(例如:UfrmMain.h)包含到测试项目中。 即使我将可视化与逻辑(MultiTier/MVC)分开,我也无法在我的类中包含任何Firemonkey库(有时这是很有用的,比如一个名为"CustomDatabase"的类有一个只在Firemonkey中才能用的TConnection对象-当然这只是一个例子)。
当我完全将firemonkey代码分离并留在表单上时,测试是可能的,而将逻辑/数据保留在具有纯C++代码的类中。
所以,这个"障碍"实际上是一件好事吗?迫使我使用MultiTier/MVC?(在C++中这个东西对我来说是新的)还是我应该寻找一个替代单元测试的方法,让我也可以测试表单?
(您能否向我推荐一些在github上分开了上述方式的C++项目或代码示例,我可以依赖它们?)

听起来是时候让一些有进取心的Delphi黑客编写一个DUnitFMX了。 - Warren P
1个回答

3

一种可能的方法是使用TextTestRunner而不是GUITestRunner。我从未尝试过这样做,但我认为TextTestRunner很有可能不使用任何VCL单元,或者至少它使用的内容可以轻松地被删除。实际上,源代码的快速扫描表明这将起作用。


有点能用。我不得不在测试项目的“.cbproj”中将“FrameworkType”从VCL更改为FMX才能编译,但现在该项目需要来自第三方组件文件的.obj文件。几乎要放弃FireMonkey =/ - Filipe Carvalho

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接