Test Driven Development(TDD),单元测试

7

首先,让我解释一下我的问题目标:

我是什么样的开发人员?我是那种思考问题、编写代码,然后自己测试的人。我主要开发Web应用程序,但也有基于UI的项目(RCP/Swing应用程序)。我运行我的应用程序,点击这里,测试这个……你可能知道这种“风格”。

好吧,我是一个试图通过每一行/项目来提高自己的人,我希望我的代码/应用程序在实践中得到测试。我写代码 - 我想在代码中进行测试。

因此,我开始为我的某些类/函数使用单元测试(junit 4)。这对于没有涉及UI的后端内容有效 - 说实话:我发现编写大多数测试很难。如果我们正在构建Web应用程序,则可能会与会话或其他内容交互。我想你明白我的意思。

我正在寻找的是一些资源,可能包括示例。任何好的书籍建议也将受到欢迎。不要误解我 - 我不只想要逻辑测试的内容,我也对测试我的UI感兴趣。

也许这也是重要的一部分:我使用Java(85%的时间)和PHP/Python(其余时间)进行开发。

敬礼

4个回答

2

你可以使用Selenium在任何主流测试框架(例如:JUnit)下进行完整的前端测试。然后只需使用JVM来编写后端代码,这很容易。这样做可以保证你的测试覆盖全面。使用Selenium时,你正在编写端到端测试,而不是对每个方面进行原子单元测试。这是在测试中使用完整前端的一种权衡。


2
我发现在The Humble Dialog Box中描述的技术非常有效,可以测试我的GUI。基本上,每个GUI类都被分成3个类和一个接口:(1)逻辑控制器,定义GUI的逻辑行为(更改标签、启用事物等),完全可测试,不依赖于实际GUI,但确实依赖于(2)视图接口,定义逻辑控制器将如何与GUI交互。 (3)实际的GUI类是对真正的GUI库的非常薄的包装。最后,(4)虚假视图,您用于测试以证明您的逻辑控制器将正确地操作GUI。

一开始可能会感觉很麻烦,但我鼓励您尝试一下。自从我开始这样做以来,我的GUI问题很少。前期工作可以节省后期的大量头痛(和时间)。


1

有几个框架可以让您测试用户界面,我一直在使用FEST框架测试Swing UI的用户界面。但是,还有其他适用于Web应用程序的工具。Java Source提供了一个很棒的Java开源Web测试工具列表


1

测试驱动开发:通过示例学习, 作者肯特·贝克。这是一本实用指南,被视为开创性的著作。

我推荐其他几本书:

RSpec Book代表了下一代 - 行为驱动开发。如果你对TDD感兴趣,你也会对BDD感兴趣。

但比阅读更重要的是实践。试着自己操作一遍,并寻找或创建一个使用TDD进行代码卡塔练习的本地小组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接