飞道的博客

软件测试 实验《基于JUnit的单元测试》

439人阅读  评论(0)

软件测试 实验《基于JUnit的单元测试》

一、实验目的

能够应用Junit测试工具进行单元测试,掌握单元测试中的动态白盒测试方法,并按照单元测试的要求设计测试用例与执行单元测试。

二、实验内容

  1. Junit - 环境配置。

  2. 熟悉Junit基本用法、编写测试、Junit断言使用、执行过程等内容。

  3. 利用Java语言编写的一个Web项目,针对其中的一个或多个类,选用白盒测试设计测试用例;

  4. 编写Junit测试代码,并进行测试;

  5. (延伸扩展)编写Ant自动化测试脚本,使所有Junit测试代码自动完成测试,并生成HTML格式测试报告;测试代码覆盖率,并生成HTML格式代码覆盖测试报告。

    或可参考https://www.w3cschool.cn/junit/19qf1hup.html中的JUnit的介绍。

三、实验要求

运用JUnit测试工具进行单元测试;

四、实验步骤

  1. 根据白盒测试方法设计测试用例;

  2. 根据每个测试用例,编写基本Junit的单元测试脚本;

  3. (延伸扩展)通过编写Ant脚本生成HTML格式的测试报告;生成HTML格式的代码覆盖测试报告。

五、实验结果

1.提交单元测试的白盒测试用例;

序号 itemId itemPrice quantity
1 A01 $5.20 3
2 A02 $8.88 8

2.提交所有代码和测试代码;

public class Item{

  private String itemId;
  private String itemPrice;
  private int quantity;

  public Item(String itemId, String itemPrice, int quantity){
    this.itemId = itemId.trim();
    this.itemPrice = itemPrice;
    this.quantity = quantity;
  }

  // 商品的 ID 获取
  public String getItemId() {
    System.out.println("itemId : " + itemId);
    return itemId;
  }

  // 商品的数量获取
  public int getQuantity() {
    System.out.println("quantity : " + quantity);
    return quantity;
  }

  // 商品的价格获取
  public String getItemPrice() {
    System.out.println("itemPrice : " + itemPrice);
    return itemPrice;
  }

}
import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class TestJunit {

//    private String itemId = "A01";
//    private String itemPrice = "$5.20";
//    private int quantity = 3;

    private String itemId = "A02";
    private String itemPrice = "$8.88";
    private int quantity = 8;

    private Item item = new Item(itemId, itemPrice, quantity);

    @Test
    public void testGetItemId() {
        assertEquals(itemId, item.getItemId());
    }

    @Test
    public void testGetQuantity() {
        assertEquals(quantity, item.getQuantity());
    }

    @Test
    public void testGetItemPrice() {
        assertEquals(itemPrice, item.getItemPrice());
    }
}
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
    public static void main(String[] args) {
        Result result = JUnitCore.runClasses(TestJunit.class);
        for (Failure failure : result.getFailures()) {
            System.out.println(failure.toString());
        }
        System.out.println(result.wasSuccessful());
    }
}
  1. (延伸扩展)提交Ant生成的HTML格式报告。

3.1 Ant生成的HTML报告结果显示,在TestUnit和TestRunner类中共四个方法,其中一个测试错误,其余三个均通过。详细说明见3.2。

3.2 Ant自动化测试的四个方法情况如下所示,其中TestUnit中的三个方法均显示成功通过,但是TestRunner中的方法显示错误,原因提示没有运行方法。分析可知TestRunner本来是用于执行TestUnit中的测试方法的,所以并没有在方法上加入@Test,从而导致报错。也就是说在进行Ant自动化测试时其实是并不需要进行该方法测试的,可以在测试前直接删除该文件。

3.3 TestUnit中的测试详情。

3.4 TestRunner中的测试详情。(该方法其实不需要测试)


转载:https://blog.csdn.net/qq_39564555/article/details/105882617
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场