首页 > 其他分享 >无涯教程-JUnit - 参数化测试

无涯教程-JUnit - 参数化测试

时间:2024-01-12 22:01:46浏览次数:28  
标签:教程 java 无涯 Parameterized JUnit public org import junit

JUnit 4引入了称为参数化测试的新功能,参数化测试允许开发人员使用不同的值一次又一次地运行相同的测试。创建参数化测试需要遵循五个步骤。

  • 使用@RunWith(Parameterized.class)注释测试类。

  • 创建一个用@Parameters注释的公共静态方法,该方法返回对象的集合作为测试数据集。

  • 创建一个公共构造函数,该构造函数接受相当于一个"row"测试数据的东西。

  • 为测试数据的每个"column"创建一个变量。

  • 使用变量作为测试数据的源来创建测试用例。

测试用例将为每行数据调用一次。让无涯教程看看参数化测试的实际应用。

创建测试类

在C:\> JUNIT_WORKSPACE中创建一个要测试的Java类,例如PrimeNumberChecker.java。

public class PrimeNumberChecker {
   public Boolean validate(final Integer primeNumber) {
      for (int i = 2; i < (primeNumber/2); i++) {
         if (primeNumber % i == 0) {
            return false;
         }
      }
      return true;
   }
}

创建测试用例类

创建一个Java测试类,例如PrimeNumberCheckerTest.java。在C:\> JUNIT_WORKSPACE中创建一个名为PrimeNumberCheckerTest.java的文件。

import java.util.Arrays;
import java.util.Collection;
 
import org.junit.Test;
import org.junit.Before;

import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;

@RunWith(Parameterized.class)
public class PrimeNumberCheckerTest {
   private Integer inputNumber;
   private Boolean expectedResult;
   private PrimeNumberChecker primeNumberChecker;

   @Before
   public void initialize() {
      primeNumberChecker = new PrimeNumberChecker();
   }

   //Each parameter should be placed as an argument here
   //Every time runner triggers, it will pass the arguments
   //from parameters we defined in primeNumbers() method
	
   public PrimeNumberCheckerTest(Integer inputNumber, Boolean expectedResult) {
      this.inputNumber = inputNumber;
      this.expectedResult = expectedResult;
   }

   @Parameterized.Parameters
   public static Collection primeNumbers() {
      return Arrays.asList(new Object[][] {
         { 2, true },
         { 6, false },
         { 19, true },
         { 22, false },
         { 23, true }
      });
   }

   //这个测试将运行 4 次,因为我们定义了 5 个参数
   @Test
   public void testPrimeNumberChecker() {
      System.out.println("Parameterized Number is : " + inputNumber);
      assertEquals(expectedResult, 
      primeNumberChecker.validate(inputNumber));
   }
}

创建测试运行类

在C:\> JUNIT_WORKSPACE中创建一个名为TestRunner.java的Java类文件以执行测试用例。

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(PrimeNumberCheckerTest.class);

      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
		
      System.out.println(result.wasSuccessful());
   }
}  	

使用javac编译PrimeNumberChecker,PrimeNumberCheckerTest和Test Runner类。

C:\JUNIT_WORKSPACE>javac PrimeNumberChecker.java PrimeNumberCheckerTest.java
TestRunner.java

现在运行Test Runner,它将运行在提供的Test Case类中定义的测试用例。

C:\JUNIT_WORKSPACE>java TestRunner

验证输出。

Parameterized Number is : 2
Parameterized Number is : 6
Parameterized Number is : 19
Parameterized Number is : 22
Parameterized Number is : 23
true

参考链接

https://www.learnfk.com/junit/junit-parameterized-test.html

标签:教程,java,无涯,Parameterized,JUnit,public,org,import,junit
From: https://blog.51cto.com/u_14033984/9223639

相关文章

  • 无涯教程-JUnit - 异常测试
    JUnit提供了跟踪代码异常处理的选项,您可以测试代码是否引发期望的异常。expected参数与@Test注释一起使用。让无涯教程看看@Test(expected)的作用。创建测试类在C:\>JUNIT_WORKSPACE中创建一个要测试的Java类,例如MessageUtil.java。在printMessage()方法内添加错误条件。......
  • 无涯教程-JUnit - 时间测试
    JUnit提供了一个超时(timeout)选项,如果测试花费的时间超过指定的毫秒数,则JUnit会自动将其标签为失败。timeout参数与@Test注释一起使用。创建测试类在C:\>JUNIT_WORKSPACE中创建一个要测试的Java类,例如MessageUtil.java。在printMessage()方法内添加一个无限的while循环。......
  • 无涯教程-JUnit - Ignore测试
    有时会发生这样的情况,无涯教程的代码在运行测试用例时还没有完全准备好,@Ignore注释在这种情况下会有所帮助。带有@Ignore注释的测试方法将不会执行。如果使用@Ignore注释测试类,则不会执行其所有测试方法。现在看看@Ignore的作用。创建测试类在C:\>JUNIT_WORKSPACE中创建......
  • 无涯教程-JUnit - 套件测试
    测试套件(SuiteTest)用于捆绑一些单元测试用例并一起运行。在JUnit中,@RunWith和@Suite批注都用于运行套件测试。本章以包含两个测试类TestJunit1和TestJunit2的示例为例,这两个测试类使用TestSuite一起运行。创建测试类在C:\>JUNIT_WORKSPACE中创建一个要测试的Java类,例如Mes......
  • 现代 IT 人一定要知道的 Ansible系列教程:Ansiable配置
    现代IT人一定要知道的Ansible系列教程:Ansiable配置配置文件Ansible中的某些设置可通过配置文件(ansible.cfg)进行调整。库存配置对于大多数用户来说应该足够了,但您可能出于某些原因想要更改它们。可以在配置文件中进行更改并使用该更改,该文件将按以下顺序搜索:ANSIBLE_CONFIG......
  • 无涯教程-JUnit - 使用断言
    所有的断言都在Assert类中。publicclassAssertextendsjava.lang.Object此类提供了一组断言方法,可用于编写测试。Assert类的一些重要方法如下-Sr.No.Methods&Remark1voidassertEquals(booleanexpected,booleanactual)检查两个primitives/object是否相等。2......
  • BCLinux 8.2安装配置图解教程--龙蜥社区国产移动云系统
    社区镜像下载地址:https://openanolis.cn/download安装参考地址:https://www.osyunwei.com/archives/13017.html1安装系统界面说明:InstallBigCloudEnterpriseLinux8  #安装Testthismedia&installBigCloudEnterprise Linux8#测试安装文件并安装Troubleshooti......
  • 无涯教程-JUnit - 编写测试
    在这里,无涯教程将看到一个使用POJO类,业务逻辑类和一个测试类进行JUnit测试的完整示例,该类将由测试运行程序运行。在C:\>JUNIT_WORKSPACE中创建EmployeeDetails.java,这是一个POJO类。publicclassEmployeeDetails{privateStringname;privatedoublemonthlySalary......
  • 无涯教程-JUnit - 测试框架
    JUnit是回归测试框架,开发人员可以使用它来用Java实施单元测试,从而加快编程速度并提高代码质量。 JUnit函数JUnit测试框架提供以下重要函数-FixturesTestsuitesTestrunnersJUnitclassesFixturesFixtures是一组对象的固定状态,目的是确保在固定环境中运行测试,以便结果可......
  • 无涯教程-JUnit - 环境设置
    JUnit是Java的框架,因此最首要的要求是在计算机上安装JDK。步骤1-验证Java安装首先,打开控制台并根据您正在使用的操作系统执行Java命令。OSTaskCommandWindowsOpenCommandConsolec:\>java-versionLinuxOpenCommandTerminal$java-versionMacOpenTerminalma......