在项目经常会用到单元测试,这里对Junit在开发中的使用标准及使用方法进行简单的介绍。

1.包目录的定义以及相关jar包的添加

2.Junit3和Junit4分别对测试类的编写

所测试的源代码:

  1. package com.techbirds;
  2. public class HelloWorld {
  3. public void sayHello(){
  4. System.out.println("hello....");
  5. throw new NumberFormatException();
  6. }
  7. public void sayWorld(){
  8. System.out.println("world....");
  9. }
  10. public String say(){
  11. return "hello world!";
  12. }
  13. }

Junit3测试类编写:

  1. package com.techbirds;
  2. import junit.framework.TestCase;
  3. public class HelloWorldTest extends TestCase{
  4. private HelloWorld hw;
  5. @Override
  6. protected void setUp() throws Exception {
  7. super.setUp();
  8. hw=new HelloWorld();
  9. }
  10. //1.测试没有返回值
  11. public void testHello(){
  12. try {
  13. hw.sayHello();
  14. } catch (Exception e) {
  15. System.out.println("发生异常.....");
  16. }
  17. }
  18. public void testWorld(){
  19. hw.sayWorld();
  20. }
  21. //2.测试有返回值的方法
  22. // 返回字符串
  23. public void testSay(){
  24. assertEquals("测试失败", hw.say(), "hello world!");
  25. }
  26. //返回对象
  27. public void testObj(){
  28. assertNull("测试对象不为空", null);
  29. assertNotNull("测试对象为空",new String());
  30. }
  31. @Override
  32. protected void tearDown() throws Exception {
  33. super.tearDown();
  34. hw=null;
  35. }
  36. }

Junit4测试类编写:

  1. package com.techbirds;
  2. import org.junit.After;
  3. import org.junit.Before;
  4. import org.junit.Test;
  5. //导入Assert类的静态方法-为了便于junit4->junit3的转换
  6. import static org.junit.Assert.*;
  7. public class HelloWorldTest {
  8. private HelloWorld hw;
  9. @Before
  10. public void setUp() {
  11. hw = new HelloWorld();
  12. }
  13. @Test(expected=NumberFormatException.class)
  14. // 1.测试没有返回值,有别于junit3的使用,更加方便
  15. public void testHello() {
  16. hw.sayHello();
  17. }
  18. @Test
  19. public void testWorld() {
  20. hw.sayWorld();
  21. }
  22. @Test
  23. // 2.测试有返回值的方法
  24. // 返回字符串
  25. public void testSay() {
  26. assertEquals("测试失败", hw.say(), "hello world!");
  27. }
  28. @Test
  29. // 返回对象
  30. public void testObj() {
  31. assertNull("测试对象不为空", null);
  32. assertNotNull("测试对象为空", new String());
  33. }
  34. @After
  35. public void tearDown() throws Exception {
  36. hw = null;
  37. }
  38. }

全部测试类运行:

Junit3和Junit4使用区别的更多相关文章

  1. JUnit3 和 JUnit4的区别

    JUnit3 和 JUnit4的区别 1.JUnit 4使用org.junit.*包而JUnit 3.8使用的是junit.Framework.*;为了向后兼容,JUnit4发行版中加入了这两种包. ...

  2. Junit3与Junit4的区别

    Junit4最大的亮点就是引入了注解(annotation),通过解析注解就可以为测试提供相应的信息,抛弃junit3使用命名约束以及反射机制的方法. /** * 被测试类 */ package co ...

  3. junit3和junit4的区别总结

    先来看一个例子: 先用junit3来写测试用例,如下: junit3测试结果: 从上面可看出: 1.junit3必须要继承TestCase类 2.每次执行一个测试用例前,junit3执行一遍setup ...

  4. junit3和junit4的使用区别如下

    junit3和junit4的使用区别如下1.在JUnit3中需要继承TestCase类,但在JUnit4中已经不需要继承TestCase2.在JUnit3中需要覆盖TestCase中的setUp和te ...

  5. junit基础学习之-junit3和4的区别(4)

    junit3和junit4的使用区别如下 1.在JUnit3中需要继承TestCase类,但在JUnit4中已经不需要继承TestCase 2.在JUnit3中需要覆盖TestCase中的setUp和 ...

  6. junit3对比junit4

    本文内容摘自junit实战,感谢作者的无私奉献. 个人觉得每个开源包的版本对比意义不大,闲来无事,这里就来整理一下好了.本文名为junit3对比junit4,但是我通过这篇博客主要也是想统一的来整理下 ...

  7. 《Gradle权威指南》--Android Gradle测试

    No1: Android既可以用传统的JUnit测试,也可以用Android的instrument测试. No2: 当我们运行测试的时候,androidTest SourceSet会被构建成一个可以安 ...

  8. 2016-2017-2 20155325实验二《Java面向对象程序设计》实验报告

    实验二 面向对象程序设计-1 答案截图 码云代码链接 链接1 实验遇到的问题和解决过程 问题1:在plugins里搜索不到JUnitGenerator V2.0只能搜到Generste Teats 问 ...

  9. junit学习之junit的基本介绍

    Junit目前在一些大的公司或者相对规范的软件中使用的比较多,相当多的小公司并没有把单元测试看的太重要.在大点的公司开发人员每天上班后,第一件事情就是从svn上把自己负责的代码checkout下来,然 ...

随机推荐

  1. thinkphp中的类库与引用import引入机制

    ThinkPHP的类库包括基类库和应用类库 控制器类 模块名+Action 例如 UserAction.InfoAction 模型类 模型名+Model 例如 UserModel.InfoModel ...

  2. python2除法保留小数部分

    转载:http://www.cnblogs.com/yhleng/p/9223944.html 1.python2和python3除法的最大区别: python2: print 500/1000 py ...

  3. drools研究后记

    在实际工作中,有关于达标推断的业务逻辑 就是谁谁谁 消费满了多少钱.就返多少钱的优惠券 声明:不是drools不好,仅仅是在我遇到的场景下,不合适,不够好 在使用drools的时候发现有例如以下问题: ...

  4. 安卓开发笔记——打造万能适配器(Adapter)

    为什么要打造万能适配器? 在安卓开发中,用到ListView和GridView的地方实在是太多了,系统默认给我们提供的适配器(ArrayAdapter,SimpleAdapter)经常不能满足我们的需 ...

  5. 安卓开发笔记——Menu菜单组件(选项菜单,上下文菜单,子菜单)

    菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu).上下文菜单(ContextMenu)和子菜单(SubMenu). 菜单的实现 ...

  6. EasyUI的功能树之扁平化

    上篇博客主要介绍了异步加载树的方法,通过前台传给后台一个节点的id值,然后当单击节点加号时,查询并显示其子节点的数据.其实如果不是很大的数据,我们本可以次把树中所有节点都加载上来的.也就是说,我的Ac ...

  7. vue-cli生成的项目配置开发和生产环境不同的接口

    vue-cli生成的项目,vue项目配置了不同开发环境的接口地址,axios.defaults.baseURL如何引用这个地址,这是在我发布项目的时候考虑的,于是想到了 方法一: config下配置文 ...

  8. 未定义变量 "caffe" 或类 "caffe.reset_all"

    配置caffe后在matlab中测试报错. 未定义变量 "caffe" 或类 "caffe.reset_all". 我的原因是:caffe在matlab接口处没 ...

  9. linux中如何通过echo输出!(叹号)? -bash: !": event not found

    需求描述: 今天在做通过echo结合passwd给用户改密码的过程中,出现无法修改的错误. 错误如下: [root@testvm ~]# useradd mytest [root@testvm ~]# ...

  10. mysql中,创建包含json数据类型的表?创建json表时候的注意事项?查询json字段中某个key的值?

    需求描述: 在mysql数据库中,创建包含json数据类型的表.记录下,在创建的过程中,需要注意的问题. 操作过程: 1.通过以下的语句,创建包含json数据类型的表 mysql> create ...