是否正在为GUI版本和控制台版本中使用的代码编写库(.DLL)最佳实践?

时间:2019-05-22 14:06:54

标签: c++ user-interface dll console-application

我正在用C ++编写一个函数,我需要测试该函数是否成功计算了某些测试用例。可以使用该功能的控制台版本来完成此测试。最后,该功能将在GUI应用程序的GUI版本中运行。当然,我不想有两个构造区域(控制台版本和GUI版本)。

我的第一个想法是为该函数创建一个库(.DLL)。这使我能够从控制台应用程序为测试用例以及在GUI版本的GUI应用程序中调用相同的库。

这是要走的路吗? 什么是我的案例的最佳做法?

1 个答案:

答案 0 :(得分:-1)

最佳实践是清楚地了解您的测试目标和实现这些目标的技术带宽,因为从测试驱动的开发(在这种情况下,您的测试用例位于比您的代码工件更重要,并且应该获得最高认可),以“尽可能少地进行人工测试就可以将该产品推向市场”(实际上,这是大多数公司所做的事情)。

但是您问一个简单的问题,所以这是一个简单的答案。是的,出于测试和许多其他原因,您应该从业务逻辑中查看应用程序UI的解耦,是的,将功能打包到库中(DLL是Windows专用术语)是主要的实现这一目标的手段。当然,使用动态库还是静态库是一个问题,是否引入第三方工具集来帮助您进行测试是另一个问题。

可以测试整体可执行文件,但不像在组件级别分解的应用程序那样容易,因为它们对关注点的分离,模拟各种接口的能力等有所了解。因此可以选择,尤其是如果您是早期用户在开发中,将代码分解为库和独立组件往往会改善系统的运行状况和可测试性,即使它在链接,二进制接口等方面引入了一些新的复杂性。

(也不要害怕使用了解如何与GUI交互的测试运行程序直接测试您的GUI应用程序。理想情况下,您希望在隔离,联合,干净的环境中进行测试以及反映产量的产品。)