我有一个包含 UI 和一些进程的 exe 的 C++ 代码。我的目标是将 UI 与进程分离并将 exe 转换为 dll。
为了做到这一点,我正在考虑在接触任何代码之前生成单元测试,然后进行修改并确保测试没有失败。
问题是我不确定这是否是最好的方法,如果是,有没有办法自动生成单元测试。
顺便说一句,我正在使用 VS 2012。你对我有什么指导吗?
我有一个包含 UI 和一些进程的 exe 的 C++ 代码。我的目标是将 UI 与进程分离并将 exe 转换为 dll。
为了做到这一点,我正在考虑在接触任何代码之前生成单元测试,然后进行修改并确保测试没有失败。
问题是我不确定这是否是最好的方法,如果是,有没有办法自动生成单元测试。
顺便说一句,我正在使用 VS 2012。你对我有什么指导吗?
为 GUI 编写有意义的单元测试相对困难。有像FrogLogic 的 Squish这样的框架使 GUI 测试相对容易,但大多数情况下,这些工具不是免费的。
还要注意,“事后”编写单元测试是一项不小的壮举,因为可能必须更改原始代码以使其可测试。
据我所知,没有工具可以自动将现有代码置于单元测试之下——如果这么简单,应该不会有新的错误,对吧?正如 arne 在他的回答中所说,如果代码最初不是为了测试而设计的,那么通常必须将其更改为可测试的。
在我看来,你能做的最好的事情是学习一些如何引入单元测试的技术,而这些改动相对较少(这样你就可以在开始“真正的”修改之前引入单元测试);我最近读过的一本关于这个主题的书是 Michael Feathers 的“有效地使用遗留代码”(亚马逊链接:http ://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052 )。尽管它有一些缺点,但它对如何轻松引入单元测试的技术进行了非常详细的描述。