Creating parameterized tests with JUnit4

2023-10-18 04:52

本文主要是介绍Creating parameterized tests with JUnit4,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

环境

hamcrest-all-1.3

junit-4.13.2

被测类

package com.yaya.junit;public class Factorial {public long factorial(long number) {if(number == 0) {return 1;}return number*factorial(number-1);}
}

测试类一:使用构造函数

package com.yaya.junit;import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;import java.util.Arrays;
import java.util.Collection;import static org.junit.Assert.assertEquals;@RunWith(Parameterized.class)
public class ParameterizedFactorialTest {private int number;private int expectedResult;public ParameterizedFactorialTest(int input, int expected) {number= input;expectedResult= expected;}@Parameterspublic static Collection<Object[]> factorialData() {return Arrays.asList(new Object[][] {{ 0, 1 }, { 1, 1 }, { 2, 2 }, { 3, 6 }, { 4, 24 }, { 5, 120 },{ 6, 720 }});}@Testpublic void factorial() throws Exception {Factorial fact = new Factorial();assertEquals(fact.factorial(number),expectedResult);}
}

测试类二:使用公有变量

package com.yaya.junit;import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;import java.util.Arrays;
import java.util.Collection;import static org.junit.Assert.assertEquals;@RunWith(Parameterized.class)
public class ParameterizedFactorialTest {@Parameter(value=0)public int number;@Parameter(value=1)public int expectedResult;@Parameterspublic static Collection<Object[]> factorialData() {return Arrays.asList(new Object[][] {{ 0, 1 }, { 1, 1 }, { 2, 2 }, { 3, 6 }, { 4, 24 }, { 5, 120 },{ 6, 720 }});}@Testpublic void factorial() throws Exception {Factorial fact = new Factorial();assertEquals(fact.factorial(number),expectedResult);}
}

IntelliJ Idea 运行截图

这篇关于Creating parameterized tests with JUnit4的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/230305

相关文章

Creating OpenAI Gym Environment from Map Data

题意:从地图数据创建 OpenAI Gym 环境 问题背景: I am just starting out with reinforcement learning and trying to create a custom environment with OpenAI gym. However, I am stumped with trying to create an enviro

【POJ】2976 Dropping tests 01分数规划

传送门:【POJ】2976 Dropping tests 题目大意:给你长度为n的一对整数a[],b[](注意是一对的),根据式子可以得到:∑a[ i ] / ∑b[ i ],现在给你整数k,你可以从n个中剔除k对,问剩下的根据式子能得到的最大值是多少,答案*100并且四舍五入精确到个位。 题目分析: 很清晰的01分数规划,设Q(L) = ∑a[ i ] - L * ∑b[ i

ORA-01186: file 201 failed verification tests

环境:oracle11.2.0.4RAC+ASM+red hat6.1x64 主库两节点RAC,备库也为两节点RAC。 备库启用为实时应用查询。日志应用等都是正常的。 主库asm group如下: ASMCMD> ls CRS/DATA/ FRA/ 备库asm group如下: ASMCMD> ls CRS/SDATA/ SFRA/备库启动后报错如下:(查询某些数据字典也会报红色的错误) Dict

Error creating bean with name 'redisTemplate' defined in URL

最近使用Spring 整合Redis出现了这类问题: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisTemplate' defined in URL [file:/E:/workspace/spring-ssm/target/classes/spring/s

Error creating bean with name 'xxx.xx.xRequestMappingHandlerAdapter' Instantiation of bean failed

最近将maven 项目中的spring 版本更新到了5.1.6.RELEASE,但是项目启动时,出现了如下问题 ERROR org.springframework.web.context.ContextLoader - Context initialization failed org.springframework.beans.factory.BeanCreationException: Er

POJ 2976 Dropping tests (最大化平均值)

题目链接:click here~~ 【题目大意】给你n个分数的值,要求最小不选k个,使得最后分数相加结果平均值最大 【解题思路】:最大化平均值:参见:click here~~ 代码: #include <stdio.h>#include <math.h>#include <string.h>#include <iostream>#include <algorithm>usi

java web下spring整合hibernate怎么用junit4测试

写一个测试类,然后在测试类里面写: @Test public voidtest(){ ApplicationContextcontext = newClassPathXmlApplicationContext("spring/applicationContext.xml"); SessionFactorysessionFactory = (SessionFactory) context.ge

Creating custom and compound Views in Android - Tutorial(翻译)

Creating custom and compound Views in Android - Tutorial(翻译) 译前的: 之前做了三篇学习笔记,从知乎上面看到了这篇英文的推荐,总的来说可以是一篇导读,没有相关的学习,看这篇,可以作为一个学习脉络导向;有相关的学习底子,可以作为一个基础夯实、思维理清。没想到一翻译就是四个多小时…英语渣,很多词句都不太准确,幸好有之前的学习基础打底…

Creating Your Own Document Management System With SharePoint 使用SharePoint创建你自己的文档管理系统

Creating Your Own Document Management System With SharePoint 使用SharePoint创建你自己的文档管理系统 With the R2 release of Dynamics AX 2012, a new feature was quietly snuck into the product that allows you to st

SP2010开发和VS2010专家食谱--第七章节--使用客户端对象模型(1)--Creating a list using a Managed OM

本文中,我们将学习如何使用托管对象模型创建列表。我们也将添加新栏,插入约10行数据到列表。本文中我们将创建一个使用generic list template的控制台应用程序。