JUnit学习笔记之NetBeans篇

netbeans单元测试 netbeans单元测试netbeans单元测试netbeans单元测试 立即下载

一、简介
  本文与之前的《JUnit学习笔记》所记述的内容是一致的,只不过IDE换成了最近开始试用的NetBeans。NetBeans是新近流行的一款堪与Eclipse媲美的IDE,有Sun的支持,最新版本5.0RC2,本文使用的是4.1中文版,可以从www.netbeans.org下载。
  JUnit是一款由Erich Gamma(《设计模式》的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人员做单元测试之用,可以从www.junit.org网站上免费获得。本文使用的是NetBeans自带的JUnit 3.8.1。
二、创建项目
  下面打开NetBeans,然后点击菜单“文件”->“新建项目”,打开“新建项目”对话框:

请在“类别”中选择“常规”,再从“项目”中选择“Java应用程序”,然后点击“下一步”,进入“新建Java应用程序”对话框: 

在这个对话框中需要设置项目的名称以及项目所在目录,我为自己的项目起名为JUnitTest,“项目位置”为G:/YPJCCK/JUnit/NetBeans,此外,请将“创建主类”前的对号去掉。项目创建好后,已经自带了JUnit 3.8.1。
三、编写用于测试的JavaBean
  用于测试的JavaBean很简单,名为Book,只有id和name两个属性,这两个属性将分别用于两个用例当中。下面开始编写该JavaBean。
  请点击“文件”->“新建文件”,打开“新建文件”对话框:

确保“项目”选择的是JUnitTest,然后在“类别”中选中Java类,在“文件类型”中选中Java类,点击“下一个”,进入下一窗口:

设置类名为Book,包为net.zheng.junit.test,设置完成后点击“完成”,修改代码如下:
  package net.zheng.junit.test;

  public class Book {
    private String id = null;
    private String name = null;

    public String getId() {
      return id;
    }
    public void setId(String id) {
      this.id = id;
    }
    public String getName() {
      return name;
    }
    public void setName(String name) {
      this.name = name;
    }
  }
至此,用于测试的JavaBean编写完成。
四、编写测试用例
  这里只用了一个类进行测试,名为BookTest,该类继承自junit.framework.TestCase类。BookTest类包含两个用例,分别对应该类的testId和testName方法,即每个方法实现了一个测试用例。注意,在JUnit中,junit.framework.TestCase的子类中每个用来实现测试用例的方法都必须以testXXX的格式来命名,这些方法在运行时会被执行。此外,BookTest还包括setUp和tearDown这两个方法,前者在每个测试方法开始之前执行,多用来做初始化;后者在每个测试方法完成之后执行,多用来清理资源。下面开始编写BookTest。
  请点击“文件”->“新建文件”,打开“新建文件”对话框:

确保“项目”选择的是JUnitTest,然后在“类别”中选中JUnit类,在“文件类型”中选中现有类的测试,点击“下一个”,进入下一窗口:

选择要测试的类,点击“完成”,修改代码如下:
  package net.zheng.junit.test;

  import junit.framework.TestCase;
  import junit.framework.Assert;

  public class BookTest extends TestCase {
    Book book = null;

    //建议为测试类创建构造
    public BookTest(String name) {
      super(name);
    }

    protected void setUp() throws Exception {
      //调用超类的setUp(),以确保测试环境被初始化
      super.setUp();

      System.out.println("测试开始!");
      book = new Book();
      System.out.println("book对象被初始化!");
    }

    protected void tearDown() throws Exception {
      System.out.println("book对象将被清理!");
      book = null;
      System.out.println("测试结束!");

      //调用超类的tearDown(),以确保测试环境被清理
      super.tearDown();
    }

    public void testId() {
      book.setId("001"); //设置id属性的值为001
      //使用Assert查看id属性的值是否为001
      Assert.assertEquals("001", book.getId());
      System.out.println("id属性被测试!");
    }

    public void testName() {
      book.setName("ASP"); //设置name属性的值为ASP
      //使用Assert查看name属性的值是否为JSP,这是个必然出现错误的测试
      Assert.assertEquals("JSP", book.getName());
      System.out.println("name属性被测试!");
    }
  }
这里setUp和tearDown方法没什么好说的,就是执行了对book对象的初始化和清理,不过testId和testName需要说明一下。前者是在对book的id属性进行测试,首先赋值为”001”,然后使用Assert的assertEquals方法查看id属性中存放的值是否是期待的值,由于我的期待值也是”001”,所以执行后这个用例应该是成功的;后者则是对book的name属性进行测试,也是首先赋值为”ASP”,然后使用Assert的assertEquals方法查看其值是否是期待的,由于我特意将期待值设定为根本不可能的”JSP”,因此这个用例执行后会出现一个错误。但请注意,由于我是特意要让测试出现错误,所以将期待值设定成了不可能的值,如果你是测试人员,请千万不要这么做,否则如果别的地方导致了错误,很容易给自己造成不必要的麻烦。
  下面简单介绍一下上边用到的静态类junit.framework.Assert。该类主要包含8个方法:
  1.assertEquals()方法,用来查看对象中存的值是否是期待的值,与字符串比较中使用的equals()方法类似;
  2.assertFalse()和assertTrue()方法,用来查看变量是是否为false或true,如果assertFalse()查看的变量的值是false则测试成功,如果是true则失败,assertTrue()与之相反;
  3.assertSame()和assertNotSame()方法,用来比较两个对象的引用是否相等和不相等,类似于通过“==”和“!=”比较两个对象;
  4.assertNull()和assertNotNull()方法,用来查看对象是否为空和不为空;
  5.fail ()方法,意为失败,用来抛出错误。我个人认为有两个用途:首先是在测试驱动开发中,由于测试用例都是在被测试的类之前编写,而写成时又不清楚其正确与否,此时就可以使用fail方法抛出错误进行模拟;其次是抛出意外的错误,比如要测试的内容是从数据库中读取的数据是否正确,而导致错误的原因却是数据库连接失败。
五、运行BookTest
  编写好BookTest后,就可以运行了。请在“项目”栏中选中BookTest,点击鼠标右键,选择“运行文件”,测试信息会从“输出”窗口输出:

六、测试套件
  当有多个测试类需要一次性进行测试时,可以使用测试套件来完成这项工作。
  在NetBeans中,点击“文件”->“新建文件”,打开“新建文件”对话框:

确保“项目”选择的是JUnitTest,然后在“类别”中选中JUnit类,在“文件类型”中选中测试套件,点击“下一个”,进入下一窗口:

修改“类名”为AllTests,点击“完成”,然后修改代码如下:
  package net.zheng.junit.test;

  import junit.framework.*;

  public class AllTests extends TestCase {
    public AllTests(String testName) {
      super(testName);
    }

    public static Test suite() {
      TestSuite ts= new TestSuite("AllTests");
      ts.addTestSuite(BookTest.class);
      return ts;
    }
  }
其中TestSuite是用来组织测试类的,通过其addTestSuite()方法将测试类添加到ts对象中,凡是添加到ts中的测试类都将在运行文件时被执行。此外,您也可以在定义ts对象时利用其构造函数将测试类添加给ts对象,例如:
  TestSuite ts = new TestSuite(BookTest.class);
这并不会影响到后续使用addTestSuite()方法。测试套件的运行方法与之前一样。
  此外,JUnit自身也提供了运行测试的环境,但需要在NetBeans中做一些改动,所以就不作详细介绍了,这里只将代码给出:
  package net.zheng.junit.test;

  import junit.framework.*;

  public class Test {
    public static void main(String[] args) {
      //使用TestSuite组装测试类
      TestSuite ts = new TestSuite();
      ts.addTestSuite(TestBook.class);
      //textui,命令行方式
      junit.textui.TestRunner.run(ts);
      //swingui,Swing方式
      //junit.swingui.TestRunner.run(ts.getClass());
      //awtui,AWT方式
      //junit.awtui.TestRunner.run(ts.getClass());
    }
  }
七、小结
  其实JUnit上手很容易,远比想象的要简单的多,但我觉得如何编写测试类是很需要经验的,因为许多时候,测试一个用例,但涉及到可能不止一个类;而有些时候,一个类可能是做为工具使用,里边涉及很多内容,那么测试时是否还是只编写一个测试类呢?关于这个话题,我想应该是仁者见仁、智者见智的,其实这才是测试的难题所在。

netbeans junit 源码 netbeans junit 代码生成 源码 ,可以参考编写代码生成器。 立即下载

相关推荐

Netbeans如何使用JUnit

Netbeans如何使用JUnit

使用Netbeans里的JUnit进行软件单元测试

软件测试是软件开发阶段中的一个重要环节,良好的测试方法是保证软件质量的根基。软件测试根据软件开发阶段按过程划分为:1.单元测试 2.集成测试 3.确认测试 4.验收测试 5.系统测试。什么是单元测试呢?单元测试是指将测试集成到创建的所有代码中,并且在每次执行构建时运行这些测试的过程。在这个过程中,不仅可以进行语法错的检查而且可以方便的进行语义错误的检查。现在有一些常用的单元测试框架:1.JUnit

我的博客 1万+

JUnit4详解

JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。

在NetBeans中使用JUnit

 摘自:精通NetBeans 在NetBeans中已经集成了JUnit。同时也集成了很多使用JUnit进行测试的功能。下面通过例子介绍。步骤如下:1.创建测试类;2.查看自动生成的代码;3修改测试代码;4.在NetBeans中开发测试套件。 一、创建测试类:(1)在NetBeans中创建一个名称为NetBeansJUnit的项目,类型选择“General”/“j

烟过留声的专栏 1847

基于单片机直流电机调速控制系统设计

*单片机设计介绍,基于单片机直流电机调速控制系统设计。

2201_75940997的博客 2781

KUKA 虚拟调试实战——打通Simpro4.1与OfficeLite8.6的通信与实时控制链路

本文详细介绍了KUKA虚拟调试实战,重点解析如何打通Simpro4.1与OfficeLite8.6的通信与实时控制链路。通过环境搭建、权限配置、机器人型号匹配等关键步骤,帮助工程师高效完成机器人轨迹规划和PLC联锁逻辑验证,大幅降低真机调试风险。文章还提供了典型报错解决方案和实时控制优化技巧,适用于工业机器人仿真与培训场景。

weixin_30907935的博客 449

在Neatbeans中使用JUnit4的学习时的总结

根据https://netbeans.org/kb/docs/java/junit-intro_zh_CN.html#Exercise_10以及慕课网上的JUnit4课程学习JUnit4的笔记。     JUnit是一个Java语言的单元测试框架,它是xUnit的一个子集。在NetBeans IDE 7.1 或更早版本,不需要指定测试框架,因为默认情况下将指定 JUnit。在 NetBe

sinat_16680611的博客 423

手把手教你用Foobar2000播放DSD音频(含DOP设置与SPDIF输出教程)

本文详细指导如何在Foobar2000中播放DSD音频,重点解析了DOP协议的原理与设置方法。通过安装SACD插件、配置输出设备及启用DOP模式,实现DSD音频的原生比特流输出,并特别讲解了如何通过SPDIF接口传输DSD信号,帮助发烧友充分释放高清音频设备的潜力。

weixin_29290963的博客 1824

eclipse配置git_Jenkins上集成JUnit和TestLink进行Java单元测试流程与配置

转:https://blog.youkuaiyun.com/ikoqzurydr/article/details/81568864此文档是基于已存在的Testlink测试项目而进行的后续配置,即如果是首次使用Testlink,需要首先根据Testlink的使用文档进行测试项目->测试计划->测试用例的完整创建后再进行此Jenkins平台的集成。具体Testlink使用实例参见:https://bl...

weixin_39673947的博客 206

MacBook用户必看:用Homebrew一键搞定frp内网穿透(含阿里云配置模板)

本文为MacBook用户提供基于Homebrew的frp内网穿透实战指南,详细介绍了从环境准备到阿里云服务器配置的全过程。通过Homebrew一键安装frp客户端,结合阿里云配置模板,实现高效稳定的内网穿透,适用于远程开发、IoT设备调试等多种场景。

weixin_28692817的博客 321

基于Simulink的PID控制汽车巡航控制系统建模与仿真

汽车巡航控制系统(Cruise Control System)是一种通过自动调节发动机输出功率来维持车辆以恒定速度行驶的技术。这种系统能够减轻驾驶员在长途驾驶中的疲劳,同时提高燃油经济性和行车安全性。PID(比例-积分-微分)控制器因其结构简单、性能稳定且易于实现而被广泛应用于汽车巡航控制系统中。本项目旨在通过MATLAB/Simulink平台设计和验证一个基于PID控制的汽车巡航控制系统,重点研究PID参数调优方法、系统动态响应特性以及稳态误差消除能力。

MHD0815的博客 196

JUnit 学习笔记 NetBeans篇

JUnit学习笔记(NetBeans篇) 一、简介    JUnit是一款由Erich Gamma(《设计模式》的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人员做单元测试之用。当前版本4.1,可以从www.junit.org网站上获得。与早期的JUnit 3相比,JUnit 4.1依赖于Java 5.0的新特性,因此无法兼容于jdk 1.4,可以

我是Didizyp 6528

解决Android API 30+视频播放抖动问题

摘要:本文探讨了Android开发中使用ExoPlayer在API 30+设备上出现的视频抖动问题。作者发现API 30以下版本运行正常,但API 30及以上版本会出现画面不稳定现象。解决方案是改用TextureView替代SurfaceView,通过修改PlayerView配置并设置setUseTextureView(true)来增强播放稳定性。这一简单改动有效解决了API兼容性问题,为开发者提供了实用的解决方案。

m0_62153576的博客 118

在netbeans中使用JUnit

  

xhinker's blog 1031

【史上最全面esp32教程】网络篇和tcp/ip的使用

ESP32史上最全面wifi和tcp/ip连接及示例程序

m0_62599305的博客 9522

网络安全 | 企业网络安全的十大挑战及解决方案

网络安全 | 企业网络安全的十大挑战及解决方案,随着信息技术的飞速发展,企业数字化转型进程不断加速,网络安全问题日益成为企业运营与发展面临的关键挑战。本文深入剖析企业网络安全的十大挑战,包括网络攻击日益复杂、数据泄露风险、内部威胁、物联网安全、云安全、合规性要求、移动办公安全、供应链安全、人才短缺以及安全预算有限等,并针对每个挑战详细阐述相应的解决方案,旨在为企业构建全面、有效的网络安全体系提供指导与参考,助力企业在复杂多变的网络环境中保障自身信息资产安全,实现可持续发展。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

在NetBeans中开发JUnit测试套件

摘自:精通NetBeans  前一篇介绍了在NetBeans中如何对已经存在的类开发测试用了进行测试。下面介绍如何在NetBeans中开发测试套件。步骤如下:(1)打开上一个例子中创建的项目,依次选择主菜单中的“File”/“New File...”选项,设置文件的“Categories”为“JUnit”,“File Types”为“Test Suite”。(2)单击next进

烟过留声的专栏 1060

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

netbeans 中使用Junit

http://netbeans.org/kb/docs/java/junit-intro_zh_CN.html http://blog.youkuaiyun.com/zavens/archive/2009/02/11/3876531.aspx   软件测试是软件开发阶段中的一个重要环节,良好的测试方法是保证软件质量的根基。软件测试根据软件开发阶段按过程划分为:1.单元测试 2.集成测试 3.确认测试 4...

weixin_34405332的博客 309

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

netbeans7.4_使用NetBeans 7.4 beta提示进行更好的基于JUnit的单元测试

netbeans7.4 在上一篇文章中 ,我写了NetBeans 7.4 beta中提供的提示 ,这些提示提高了开发人员避免Java异常处理带来的讨厌的运行时问题的能力。 在本文中,我将探讨如何使用NetBeans 7.4 beta提供的另外两个提示使单元测试在执行单元测试期间更加正确和清晰。 这些是“ Assert.assertEquals的不可转换参数”和“ Assert.assertEq...

最佳 Java 编程 254

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【亲测免费】 Apache NetBeans 开源项目教程

Apache NetBeans 开源项目教程 项目介绍 Apache NetBeans 是一个开源的集成开发环境(IDE),主要用于Java、JavaScript、HTML5、PHP等语言的开发。它提供了代码编辑、调试、版本控制等一系列开发工具,旨在提高开发效率和代码质量。 项目快速启动 安装步骤 下载安装包: wget https://netbeans.apache.org/download...

gitblog_00565的博客 820

Java Unit Testing with JUnit in NetBeans

Get started: JUnit knows to execute the test method as a test because it's marked with the @Test annotation. You can have other methods in the test

Vincent's Tech Blog 460

使用NetBeans 7.4 beta提示进行更好的基于JUnit的单元测试

在上一篇文章中 ,我写了NetBeans 7.4 beta中提供的提示 ,这些提示提高了开发人员避免Java异常处理带来的讨厌的运行时问题的能力。 在本文中,我将研究如何使用NetBeans 7.4 beta提供的另外两个提示使单元测试在执行单元测试期间更加正确和清晰。 这些是“ Assert.assertEquals的不可转换参数”和“ Assert.assertEquals的参数顺序错误...

最佳 Java 编程 237

netbeans使用教程

一.创建项目下面打开NetBeans,然后点击菜单“文件”->“新建项目”,打开“新建项目”对话框:请在“类别”中选择“常规”,再从“项目”中选择“Java应用程序”,然后点击“下一步”,进入“新建Java应用程序”对话框:  在这个对话框中需要设置项目的名称以及项目所在目录,我为自己的项目起名为JUnitTest,“项目位置”为G:\YPJCCK\JUnit\NetBeans,此外,请将“...

华的专栏 5万+
上一篇: infromix -244错误
下一篇: 转 Hibernate延迟加载机制
ayan117
博客等级 码龄21年 7粉丝 13原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值