我正在用WinForms c#编写一个超过90k行的应用程序。我不是很有经验的程序员,在写完几行代码后(取决于它是新的还是我以前做过很多次的事情),我在Visual Studio中用F5开始我的项目,以验证我所做的事情是否如我所希望的那样工作。
例如:
如果来自SQL的数据在ListView中正确填充
如果排序ListView按预期工作(新集成的功能)
如果docx生成工作正常,并且docx是使用正确的格式创建的
如果计数是正确的
这是正确的做法吗?还是有更好的方法?现在启动我的应用程序大概需要5-10秒,所以这不是什么大问题,但也许有一种比我做的更好的方法。
我在一台电脑上单独编写这个应用程序。
发布于 2010-02-17 20:34:02
考虑到代码库的大小,听起来好像没有能力完全从头开始来重构代码。
如果您刚开始使用测试驱动开发( Test Driven Development,TDD),那么我建议您使用测试驱动开发( test Driven Development,TDD),并确保您尽可能将用户界面代码与其余代码分开,因为以自动化方式进行测试是出了名的困难。我仍然建议你读一些关于TDD和User Interface Design Patterns的文章。
然而,听起来你想要的是一种继续使用现有代码体的方法,我将假设它不是以一种服从自动化测试的方式构造的,因为从你所说的来看,这似乎不太可能。
在这种情况下,您可能正在做正确的事情。保持添加特性和测试特性之间的时间长度是很重要的,因为保持这个反馈循环短将更容易检查您的代码是否做了您期望它做的事情,因为当您测试它时,您不会忘记您试图实现的目标。
如果你发现你正在浪费大量的时间编译和加载你的应用程序,试着把相关的修改捆绑在一起,特别是在做简单的修改的时候。这应该会帮助你获得正确的平衡。
虽然我假设您不能对现有代码进行大规模更改,但您可以做的事情是以一种更具可测试性的方式编写新代码,并为这些代码编写单元测试,但您将不得不权衡拥有最终具有多种不同编码风格的代码与拥有一种连贯风格的代码的成本。
发布于 2010-02-17 20:13:14
Test Driven Development!
使用Visual Studion应用单元测试:A Unit Testing Walkthrough with Visual Studio Team Test
MSDN有更多关于开发和测试的内容:
使用Visual Studio Team Test
所有找到的here
发布于 2010-02-17 20:52:58
如果来自SQL的数据在ListView中正确填充/
如果排序ListView按预期工作(新集成的功能)
我从来没有使用过winforms测试框架的经验(只有Watin这样的web测试框架),但是我知道有很多windows forms测试框架,比如NUnitForms。它们自动测试winforms应用程序,以测试某些文本是否出现在屏幕上,是否按下按钮将您带到您期望的位置,等等。
这些UI测试框架永远不会完美地消除每一个角落的情况,但总是比根本没有它们更有用。
如果docx生成工作正常,并且docx是使用正确的格式创建的
您可以在单元测试中检查该文件是否存在。对于正确的格式化-实现这一目标的最好方法可能是即席测试-即某人使用一组在脚本(通常是Excel)上编写的测试来查看输出。
如果计数是正确的
这是单元测试的主要素材,大约有6个.NET框架可以做到这一点。其中一个已经是built into Visual Studio 2005+。
https://stackoverflow.com/questions/2280404
复制相似问题