JUnit实战(1) - JUnit起步(Parameterized参数化测试)

创建Java Project项目,项目名称:ch01-jumpstart

Calculator.java

public class Calculator {
    public double add(double number1, double number2) {
        return number1 + number2;
    }
}

CalculatorTest.java

import static org.junit.Assert.*;
import junit.framework.Assert;

import org.junit.Test;

public class CalculatorTest {
    @Test
    public void testAdd() {
        Calculator calculator = new Calculator();
        double result = calculator.add(10, 50);
        assertEquals(60, result, 0);
    }
}

注:使用静态导入可以使被导入类的静态变量和静态方法在当前类直接可见,使用这些静态成员无需再给出他们的类名(如assertEquals(double expected, double actual, double delta))。

ParameteredCalculatorTest.java

import static org.junit.Assert.assertEquals;

import java.util.Arrays;
import java.util.Collection;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

@RunWith(value=Parameterized.class)
public class ParameterizedCalculatorTest {

    private double expected;
    private double valueOne;
    private double valueTwo; 

    @Parameters
    public static Collection<Integer[]> getTestParameters() {
       return Arrays.asList(new Integer[][] {
          {2, 1, 1},  //expected, valueOne, valueTwo
          {3, 2, 1},  //expected, valueOne, valueTwo
          {4, 3, 1},  //expected, valueOne, valueTwo
       });
    }

    public ParameterizedCalculatorTest(double expected,
       double valueOne, double valueTwo) {
       this.expected = expected;
       this.valueOne = valueOne;
       this.valueTwo = valueTwo;
    }

    @Test
    public void sum() {
       Calculator calc = new Calculator();
       assertEquals(expected, calc.add(valueOne, valueTwo), 0);
    }
}

注:通过注解运行参数化测试

时间: 2024-10-12 18:36:09

JUnit实战(1) - JUnit起步(Parameterized参数化测试)的相关文章

Junit 4 Tutorials(Junit 4 教程) 四、Junit4 参数化测试

Junit 4 参数化测试 允许通过变化范围的参数值来测试方法.参数擦测试可以通过以下简单的步骤实现: 对测试类添加注解 @RunWith(Parameterized.class) 将需要使用变化范围参数值测试的参数定义为私有变量 使用上一步骤声明的私有变量作为入参,创建构造函数 .创建一个使用@Parameters注解的公共静态方法,它将需要测试的各种变量值通过集合的形式返回. 使用定义的私有变量定义测试方法 Junit 4 参数化测试样例 EvenNumberChecker.java 校验输

JUnit实战(2) - JUnit核心(使用Suite来组合测试)

创建Java Project项目:ch02-internals MasterTestSuite.java package com.manning.junitbook.ch02.internals; import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; @RunWith(value = Suite.class) @SuiteClass

JUnit之参数化测试和成组测试的使用

JUnit之参数化测试和成组测试的简单使用 参数化测试 正如数组替代int a0,a1,a2一样,测试加法时assertEquals(3.0, h.add(1, 2), 0.1);相当于声明一个变量,要测试100个怎么办. 所以,有了参数化测试,使用一个Collection收集所有的数据--加法时每一次测试需要的几个数据构成一组,n个组构成Collection. 然后按照JUnit的用法要求,写出单元测试类.(偷懒一下,不想写被测试的业务类X了.下面的例子中假设要测试的方法是,判断一个数是否奇数

junit 单元测试 - 参数化测试

junit4.x版本需要引入如下jar包: hamcrest-core-1.3.jar junit-4.12-beta-3.jar 新建一个计算器类,如下: package com.pt; public class Calculate { /** * 加法 * @param d1 * @param d2 * @return */ public static double add(double d1,double d2){ return d1 + d2; } /** * 减法 * @param d

junit参数化测试的使用方法

JUnit参数化测试的五个步骤:(1)为准备使用参数化测试的测试类指定特殊的运行器 org.junit.runners.Parameterized.(2)为测试类声明几个变量,分别用于存放期望值和测试所用数据.(3)为测试类声明一个带有参数的公共构造函数,并在其中为第二个环节中声明的几个变量赋值.(4)为测试类声明一个使用注解 org.junit.runners.Parameterized.Parameters 修饰的,返回值为 java.util.Collection 的公共静态方法,并在此方

junit实战第二版(总结1)

背景 最近就在看junit实战第二版,主要是基于junit4,但是现实中我们有些是基于junit3,如何平稳升级呢? junit3实现方式 测试类必须继承于TestCase类,并且测试方法必须已test开头 junit4实现 直接方法名加上@Test注解即可 注意事项 junit 4.8版本以下只需下载junit的包即可,如果junit4.8以上则还需下载hamcrest-core-1.1.jar,不然会报如下错误java.lang.NoClassDefFoundError: org/hamcr

JUnit4学习笔记(二):参数化测试与假定(Assumption)

一.一个简单的测试 编写一个只有一种运算的计算器: 1 public class Calculator { 2 public static double divide(int dividend, int divisor) { 3 return dividend / divisor; 4 } 5 } 为这个方法编写测试: 1 public class CalculatorTest { 2 //允许误差 3 private static final double DELTA = 0.01; 4 5

创建参数化测试

在本节中,我们将学习如何创建参数测试.为此,我们将使用前面章节中提供的一个公共方法添加整数.因此,这是要进行的测试类. 但是,一个测试类也可以被看作是一个参数化测试类?当然,但它要满足下列所有要求: 该类被注解为 @RunWith(Parameterized.class).如前一节中所说明的, @RunWith 注解让JUnit来调用其中的注释来运行测试类,代替使用内置的JUnit运行器,Parameterized 是一个在JUnit内的运行器将运行相同的测试用例组在不同的输入. 这个类有一个构

Junit4使用(并使用参数化测试)

如果是基于Eclipse使用Junit,在现在的Eclipse版本中都已经集成了Junit,可以根据自身的需求自由使用Junit3或者Junit4.在本文中主要通过测试简单算术程序(加,减,乘,除)来介绍Junit4的使用,并引入一个简单的案例进行讲解. Step 1: 写出基本的算术代码Calculate.java package com.ysc.main; public class Calculate { public static int add(int a, int b) { retur