在不引入错误的情况下转换项目

Convert project without introducing bugs

本文关键字:情况下 转换 项目 错误      更新时间:2023-10-16

我有一个 exe 的C++代码,其中包含一个 UI 和一些进程。我的目标是将 UI 与进程分开,并将 exe 转换为 dll。

为了做到这一点,我正在考虑在接触任何代码之前生成单元测试,然后进行修改并确保测试不会失败。

问题是我不确定这是否是最好的方法,如果是,有没有办法自动生成单元测试。

顺便说一句,我正在使用VS 2012。你对我有什么指导吗?

为 GUI 编写有意义的单元测试相对困难。有一些像FrogLogic的Squish这样的框架使GUI测试相对容易,但大多数情况下,这些工具不是免费的。

另请注意,"事后"编写单元测试并非易事,因为原始代码可能已经必须更改以使其可测试。

据我所知,没有工具可以自动将现有代码置于单元测试之下 - 如果这么简单,应该根本没有新的错误,对吧?正如 arne 在他的回答中所说,如果代码一开始就不是为了测试而设计的,那么通常必须对其进行更改才能进行测试。

在我看来,你能做的最好的事情就是学习一些如何引入相对较少更改的单元测试的技术(这样你就可以在开始"真正的"修改之前引入单元测试);我最近读过的一本关于这个主题的书是Michael Feathers的《有效地使用遗留代码》(Amazon Link: http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052)。虽然它有一些缺点,但它对如何轻松引入单元测试的技术进行了非常详细的描述。

相关文章: