知识大全 在 Eclipse 中使用 JUnit 启蒙引导

Posted

篇首语:你对人人都喜欢,也就是说,你对人人都漠然。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在 Eclipse 中使用 JUnit 启蒙引导相关的知识,希望对你有一定的参考价值。

在 Eclipse 中使用 JUnit 启蒙引导  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  许多书上都讨论了自动测试 但是只有很少的著作注意到这么一个问题 那就是怎样把这些测试组织起来 随着测试的增加 放置和调用这些测试却变得更加麻烦 这将成为一个重要问题 以至于出现了TDD 极限编程(XP)使TDD得以普及 另外 你可以这样理解TDD 通过测试来开发      TDD的主要规范   在编写程序代码之前 与之对应的自动测试必须被写好 甚至程序代码并不存在 那也要看见一个失败的测试结果     在测试通过后 副本代码必须被丢弃     有一个具体步骤(可能指的是《Extreme Programming》)可以被任何一个程序员来参考 而不需要特殊的其他方法 在我们开始写测试之前 这些步骤(章节)应该被首先阅读——怎样组织自动测试      讲解一下不同种类的测试   单元测试 检测模块(也就是类)的正确性 如果对象需要访问外部的数据资源 例如数据库 就需要模拟一个mock objects 但在实际中真实数据与测试环境是不同的     客户测试 这是功能性 系统 和验收测试 用来测试整体的系统特性 在XP中 这些测试由用户编写     综合测试 介于用户测试和单元测试之间的桥梁 综合测试帮助测试应用程序的交互性 一般情况下 mock objects不被用于综合测试 它会增加测试时间 同样 综合测试经常依赖特殊的测试环境 例如数据库送来的测试数据 综合测试也需要用到外部类库 例如为J EE应用程序进行综合测试的类库Cactus 解释这些测试超出了本文的范围 需要更加详细的信息请参考     开发人员测试 这是用来让开发人员检验自己代码或新函数的 对于每一个开发人员 只要有可能 就需要有更多的测试来检验代码 组织这些测试和组织程序代码一样重要     在以下章节 只要提到 测试 那就指的是开发人员测试     我们几乎准备好开始建立测试了 先应该为我们的测试选择名字 你也许会说 这不是问题 把 Test 这个字放在类名前面 就好了! 不会这么快!让我来说一下这个步骤存在的问题     在TDD中 被测试的类或者方法还不存在     一个测试能够覆蓋多个方法 甚至多个类 这是可能的     以上只是一些普遍问题 还存在更多的问题     让我来提一个建议 在测试命名时 测试类的名字应该让人一眼就知道这是一个测试类 且能说明它要测试什么 注意是否和其他类重名 按照以上建议做 就很简单了 也不用担心名字太长或难听     即将在Eclipse中用JUnit工具创建我们第一个测试了 假设你已经下载了一个最新的Eclipse版本 如果还没有 你应该去官方站点下载 还需要JUnit 也可以从下载     运行Eclipse 新建一个workplace项目 点击文件 >新建 >项目 选择Java项目 点击下一步 起一个项目名称 例如ProjectWithJUnit 点击完成 这样就完成新项目的建立了 再来配置一下Eclipse 在构建路径中添加JUnit类库 在工具条上点击项目 >属性 选择Java构建路径 库 选择添加外部JAR 浏览Junit被存储的目录 选择junit jar 点击打开 你将会看见JUnit出现在库的列表中 点击确定 让Eclipse重建路径     现在开发我们的 Hello World 例子 按照TDD的规则 应该在代码建立以前先把测试写好 为了能够在某出开始 我们假设未来的类名是HelloWorld 并且有一个方法Say() 这个方法返回String的值(例如 Hello World! )     建立测试 在ProjectWithJUnit的标题上面点击右键 选择新建 >其他 展开 Java 选项 选择JUnit 在右边的栏目对话框中选择测试案例 然后下一步     在测试类这一栏中 写上将要被测试的类名HelloWorld 选择一个测试案例的名字 例如TestThatWeGetHelloWorldPrompt(是的 看上去很长 但是很清楚它的行为 )点击完成     TestThatWeGetHelloWorldPrompt的代码如下     import junit framework TestCase;    public class TestThatWeGetHelloWorldPrompt    extends TestCase       public TestThatWeGetHelloWorldPrompt(        String name)         super(name);            public void testSay()         HelloWorld hi = new HelloWorld();        assertEquals( Hello World! hi say());            public static void main(String[] args)         junit textui TestRunner run(          TestThatWeGetHelloWorldPrompt class);            代码并不复杂 只是有点与众不同 然而 让我们考察一下细节 我们继承了JUnit的TestCase类 它在JUnit的javadocs定义为 运行众多测试的夹具 JUnit也有TestSuite类 它是一组测试案例的集合 但在本文中不做讨论      建立测试案例的步骤如下    建立一个junit framework TestCase的实例      定义一些以 test 开头的无返回方法(例如testWasTransactionSuccessful() testShow() 等等)     TestThatWeGetHelloWorldPrompt java包含这些 TestCase的子类和一个叫做testSay()的方法 这个方法调用了assertEquals()函数 它用来比较我们预期的值和由say()返回的值     main()方法用来运行测试和显示输出的 JUnit的TestRunner处理测试 提供基于图像和文本的输出表现形式 我们使用基于文本的版本 因为Eclipse支持它 且也适合我们 当开始运行后 基于文本的版本测试会以文本形式输出 Eclipse会把这些输出自动变成图像界面的输出     按照TDD规范 首次运行测试 应该故意让它失败 点击运行 >运行为 >Junit测试(记住TestThatWeGetHelloWorldPrompt java应该被突出的显示在包资源管理器中) 在左边窗口 应该看见JUnit窗口而不是包资源管理器 它显示一个红条 一次失败的测试 具体的失败原因参看图 如果没有自动显示这些内容 点击JUnit标签(在底部的左边)    >   >  现在我们来建立被测试代码 在包资源管理器窗口的ProjectWithJUnit标题上右击 选择新建 >类 选择类名 我们已经假设了它叫HelloWorld 然后直接点击完成 为HelloWorld java填入下列代码       public class HelloWorld         public String say()           return( Hello World! );                这段代码很简单 甚至不需要注解 我们再来看看结果 按照上面描述过的方式 在JUnit的窗口中显示了一个绿条 参看图 绿条证明测试成功    >   >  现在 我们想再让测试失败一次 但原因不同 这有助于展示JUnit测试中不同的报错信息 修改assertEquals()代码 把 Hello World! 变成 Hello Me! 当再次运行JUnit时 结果变成了红条 在JUnit窗口的底部输出了失败原因 参看图    >   >  最后 想说一下关于测试是开发过程中的必要部分的话题 测试代码一直是开发中的重要部分 经过近几年的发展 已得到了很大的提高 这要归功于强大的理论研究(比如 expectations based development 等等) 和快速发展的测试工具包 还有测试过程的改进 如果你对这篇文章感兴趣 那请你花一些时间来正式的学习一下测试理论吧 这对你的工作很有用 cha138/Article/program/Java/ky/201311/28801

相关参考

知识大全 Eclipse中建立自己的JUnit测试[3]

Eclipse中建立自己的JUnit测试[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  很

知识大全 Eclipse中建立自己的JUnit测试[1]

Eclipse中建立自己的JUnit测试[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这

知识大全 Eclipse中建立自己的JUnit测试[4]

Eclipse中建立自己的JUnit测试[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  现

知识大全 Eclipse快速上手指南之使用JUnit

Eclipse快速上手指南之使用JUnit  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

在欧洲启蒙运动中,与其他启蒙思想家相比,卢梭进一步提出了__

在欧洲启蒙运动中,与其他启蒙思想家相比,卢梭进一步提出了_____A、天赋人权和权利平等B、权力的制约与平衡C、政治民主和个人自由D、国家主权属于人民答案:D解析:在法国启蒙思想家中,卢梭对法国封建社

知识大全 看 JUnit 中Metedata的巧妙应用

看JUnit中Metedata的巧妙应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JUun

知识大全 看JUnit中Metedata的巧妙应用

看JUnit中Metedata的巧妙应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 欧洲启蒙运动思想对中国影响体现在哪些方面

欧洲启蒙运动思想对中国影响体现在哪些方面启蒙思想对中国近代思想的解放起到了重要作用。一般来说,从早期维新思想产生起启蒙思想就在中国逐步传播开来。康梁的维新思想主要传播了天赋人权,社会进化等思想,主张在

知识大全 利用 Ant 和 JUnit 进行增量开发

利用Ant和JUnit进行增量开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  软件开发习惯中

历史学家们认为:“17世纪后期科学革命的胜利为启蒙运动提供了先决条件。”据此判断,启蒙运动在科学思想方面最重要的先驱者是

历史学家们认为:“17世纪后期科学革命的胜利为启蒙运动提供了先决条件。”据此判断,启蒙运动在科学思想方面最重要的先驱者是_____A、达尔文B、牛顿C、拉瓦锡D、法拉第答案:B解析:达尔文和法拉第是1