我们可以使用DUnit写什么样的测试用例?

时间:2012-11-23 12:14:05

标签: delphi delphi-7 dunit parameterized-unit-test minimum-coded-unit

我正在使用Delphi 7。

我是DUnit的新手,我的疑问是我可以用DUnit编写什么样的测试用例以及如何(这对我来说非常重要)。

是否可以为特定的按钮点击事件编写测试用例?因为在那种情况下可能会使用大量代码,其中使用各自的数据库相关过程或函数调用更多单元。在这种情况下,编写测试用例的最佳方法是什么? (如果可能的话,一个例子或推荐对我来说将是一个很大的帮助)。

因为,在示例DUnit项目中,我们无法编写整套应用程序代码,因为在某些情况下可能需要创建一些其他形式。

所以,我怀疑如何编写测试用例,以及一般我们可以使用DUnit编写哪种类型的测试用例,重要的是如何?

2 个答案:

答案 0 :(得分:16)

这应该是一个评论,但我写的是答案,因为它不适合评论。

我建议你做两件事:

  • 调查您的业务逻辑与界面的分离(重构您的代码)
    通常,您将代码拆分为自包含单元,然后“自下而上”单元测试单元的核心功能。您没有对GUI进行单元测试。 Google例如“单元测试去耦delphi单元”

  • 查看以下链接,了解有关单元测试的示例:

http://www.howtodothings.com/computers/a928-automated-testing-with-dunit.html
http://www.nldelphi.com/cgi-bin/articles.exe/ShowArticle?ID=14697
https://lists.sourceforge.net/lists/listinfo/dunit-interest
http://www.delphi-treff.de/tutorials
http://sourceitsoftware.blogspot.com/2008/10/getting-line-numbers-in-dunit-test.html
http://wiert.me/2010/09/08/delphi-use-tstrings-to-parse-non-standard-separated-strings-and-validate-it-with-dunit-tests/
http://delphi.about.com/od/vclusing/a/autotestvcl.htm
http://dunit.sourceforge.net/
http://delphi.about.com/od/toppicks/tp/aatpdebug.htm
http://www.nickhodges.com/post/Delphi-Mocks-The-Basics.aspx
http://www.finalbuilder.com/Resources/Blogs/tabid/458/EntryId/287/Introducing-Delphi-Mocks.aspx
https://github.com/Vsofttechnologies/delphi-mocks
http://www.uweraabe.de/Blog/2012/03/17/a-dunit-folder-iterator-extension/
Unit testing in Delphi - how are you doing it?
http://members.optusnet.com.au/~mcnabp/
http://www.nickhodges.com/post/The-Vocabulary-of-Unit-Testing.aspx
http://hanselminutes.com/169/the-art-of-unit-testing-with-roy-osherove

答案 1 :(得分:4)

通过编写简单的测试来学习单元测试。简单测试适用于您正在构建的可以进行单元测试的课程。单元可测试类不是完整的Delphi GUI应用程序。

尝试这是第一个练习:

  1. 创建一个类,它可以将1到MAXINT之间的整数分解为素数列表,当它们相乘时,得到原始数字。结果应该从最小因子到最大因子排序。如果结果列表的大小为1,则结果为prime。零和负数会引发异常。

  2. 尝试“红色/绿色”测试驱动开发,而不是一气呵成。这意味着只需编写足够的代码即可使第一次测试失败。 (编写第一个测试,编写足够的代码,使您正在构建的类编译并运行,但未通过测试。现在进行第一次测试通过。不解决整个因子数,只需通过第一次测试。)

  3. 重复编写失败测试的过程,然后重复所需的代码,直到您提供(使用测试)您的类现在可以将任何整数值从1到MAXINT。

  4. 当谈到“将工作单元测试到现有的遗留应用程序”时,您应该查看一本名为“有效使用旧版代码”的书。我不能给你任何简短的介绍,如何开始将单元测试添加到一个大的泥球(你的按钮OnClick代码)。