当前位置:懂科普 >

综合知识

> javajunit测试类怎么写 java怎么写junit测试用例

javajunit测试类怎么写 java怎么写junit测试用例

1.java 怎么写junit测试用例

文件名:Calutor.java

javajunit测试类怎么写 java怎么写junit测试用例

package com.sc.zy;

public class Calutor {

public int add(int num1,int num2){

return num1+num2;

}

public int sub(int num1,int num2){

return num1-num2;

}

public int mul(int num1,int num2){

return num1*num2;

}

public int div(int num1,int num2){

if(num2==0){

throw new MyException();

}

return num1/num2;

}

}

文件名:MyException.Java

package com.sc.zy;

public class MyException extends RuntimeException {

}

文件名:CalutorTest.java

package com.sc.zy;

import junit.framework.Assert;

import org.junit.After;

import org.junit.AfterClass;

import org.junit.Before;

import org.junit.BeforeClass;

import org.junit.Ignore;

import org.junit.Test;

public class CalutorTest {

private Calutor c;

@BeforeClass

public static void setUpBeforeClass(){

System.out.println("=====static init=======");

}

@AfterClass

public static void tearDownAfterClass(){

System.out.println("=====static destory=======");

}

@Before

public void setUp(){

System.out.println("=======@before=======");

c=new Calutor();

}

@After

public void tearDown(){

System.out.println("=======@after=======");

}

@Test

public void testAdd(){

int sum=c.add(1, 2);

Assert.assertEquals(3, sum);

}

@Test(expected=com.sc.zy.MyException.class)

public void testDiv(){

c.div(1, 0);

}

@Ignore

public void testDiv1(){

int d=c.div(1, 5);

Assert.assertEquals(0, d);

}

}

2.java和junit写类与测试类

/** Book类 */

public class Book {

public String name;

public String author;

private int availNum;

public Book() {

this("", "", 0);

}

public Book(String name, String author, int availNum) {

this.name = name;

this.author = author;

this.availNum = availNum;

}

public int getAvailNum() {

return availNum;

}

public void setAvailNum(int availNum) {

this.availNum = availNum;

}

public boolean subscribe() {

if (availNum > 0) {

availNum--;

return true;

}

return false;

}

public boolean cancelSubscribe() {

availNum++;

return true;

}

}

/** Book类的单元测试类 */

import junit.framework.TestCase;

public class TestBook extends TestCase {

public void testBook() {

Book book = new Book("Thinking in Java", "Bruce Eckel", 3);

assertEquals(true, book.subscribe());// 第一次预借,应该是成功的

assertEquals(2, book.getAvailNum());// 此时的可预借数是2

assertEquals(true, book.cancelSubscribe());// 取消预借,应该是成功的

assertEquals(3, book.getAvailNum());// 此时的可预借数是3

book.setAvailNum(0);// 将可预借数设为0

assertEquals(false, book.subscribe());// 此时预借,应该是不成功的

}

public static void main(String[] args) {

junit.textui.TestRunner.run(Book.class);

}

}

上面的测试类可以不要main函数,直接在集成开发环境里用JUnit执行单元测试。

3.java junit单元测试怎么写

package com.yuanqi.zfb.test;

import org.junit.Test;

import com.yuanqi.zfb.util.VerifyCodeUtils;

public class Atest {

@Test

public void test(){

String verifycode =VerifyCodeUtils.generateVerifyCode(8);

System.out.println(verifycode);

}

@Test

public void test2(){

// String str="2015-11-23 11:23:44";

/* boolean b= str.matches("d{4}-d{2}-d{2} d{2}:d{2}:d{2}");

if(b){

System.out.println("ok");

}else{

System.out.println("222222");

}*/

String str="2015112311:23:44";

boolean b= str.matches("d{10}:d{2}:d{2}");

System.out.println(b);

}

@Test

public void test3(){

String trTime="2014112800:05:48";

String inyear=trTime.substring(0, 4);

String inmonth=trTime.substring(4,6);

String inday=trTime.substring(6,8);

String intime=trTime.substring(8);

String time=inyear+"-"+inmonth+"-"+inday+" "+intime;

System.out.println(time);

}

}

4.如何使用junit编写测试类

首先我们需要先下载相应的 JUnit 相关的 JAR 包,下载的过程可以去 JUnit 的官方网站,也可以直接通过 Maven 资源仓库来完成。

使用简单的 @Test 注解实现我们的测试方法的编写和执行 准备工作做好之后,接下来我们就可以开始尝试编写壹个简单的测试代码了。首先,我们编写了壹个 Calculator 类,并提供五个方法分别完成加减乘除以及求平方的运算。

代码如下: package net.oschina.bairrfhoinn.main; public class Calculator { public void add(int n){ result += n; } public void substract(int n){ result -= n; } public void multiply(int n){ result *= n; } public void divide(int n){ result /= n; } public void square(int n){ result = n * n; } public int getReuslt(){ return result; } public void clear(){ result = 0; } private static int result; } 在测试类中用到了JUnit4框架,自然要把相应地Package包含进来。最主要地一个Package就是org.junit.*。

把它包含进来之后,绝大部分功能就有了。还有一句话也非常地重要“import static org.junit.Assert.*;”,我们在测试的时候使用的壹系列assertEquals()方法就来自这个包。

大家注意壹下,这是壹个静态包含(static),是JDK5中新增添的壹个功能。也就是说,assertEquals是Assert类中的壹系列的静态方法,壹般的使用方式是Assert. assertEquals(),但是使用了静态包含后,前面的类名就可以省略了,使用起来更加的方便。

另外要注意的是,我们的测试类是壹个独立的类,没有任何父类。测试类的名字也可以任意命名,没有任何局限性。

所以我们不能通过类的声明来判断它是不是一个测试类,它与普通类的区别在于它内部的方法的声明,我们接着会讲到。在测试类中,并不是每壹个方法都是用于测试的,所以我们必须使用“注解”来明确表明哪些是测试方法。

“注解”也是JDK5的壹个新特性,用在此处非常恰当。我们可以看到,在某些方法的前有@Before、@Test、@Ignore等字样,这些就是注解,以壹个“@”作为开头。

这些注解都是JUnit4自定义的,熟练掌握这些注解的含义,对于编写恰当的测试类非常重要。 接下来我们创建壹个测试类 CalculatorTest.java,代码如下: package net.oschina.bairrfhoinn.test; import static org.junit.Assert.*; import org.junit.Test; import net.oschina.bairrfhoinn.main.Calculator; public class CalculatorTest { private static Calculator calculator = new Calculator(); @Test public void testAdd(){ calculator.add(7); calculator.add(8); assertEquals(15, calculator.getReuslt()); } } 首先,我们要在方法的前面使用@Test标注,以表明这是壹个测试方法。

对于方法的声明也有如下要求:名字可以随便取,没有任何限制,但是返回值必须为void,而且不能有任何参数。如果违反这些规定,会在运行时抛出壹个异常。

至于方法内该写些什么,那就要看你需要测试些什么了。比如上述代码中,我们想测试壹下add()方法的功能是否正确,就在测试方法中调用几次add函数,初始值为0,先加7,再加8,我们期待的结果应该是15。

如果最终实际结果也是15,则说明add()方法是正确的,反之说明它是错的。assertEquals(15, calculator.getResult());就是用来判断期待结果和实际结果是否相等,其中第壹个参数填写期待结果,第二个参数填写实际结果,也就是通过计算得到的结果。

这样写好之后,JUnit 会自动进行测试并把测试结果反馈给用户。 如果想运行它,可以在 eclipse 的资源管理器中选择该类文件,然后点击右键,选择 Run As->JUnit Test 即可看到运行结果。

使用@Test 的属性 Ignore 指定测试时跳过这个方法 如果在写程序前做了很好的规划,那么哪些方法是什么功能都应该实现并且确定下来。因此,即使该方法尚未完成,他的具体功能也是确定的,这也就意味着你可以为他编写测试用例。

但是,如果你已经把该方法的测试用例写完,但该方法尚未完成,那么测试的时候无疑是“失败”。这种失败和真正的失败是有区别的,因此 JUnit 提供了壹种方法来区别他们,那就是在这种测试函数的前面加上 @Ignore 标注,这个标注的含义就是“某些方法尚未完成,暂不参与此次测试”。

这样的话测试结果就会提示你有几个测试被忽略,而不是失败。壹旦你完成了相应函数,只需要把@Ignore标注删去,就可以进行正常的测试。

比如说上面的测试类 Calculator.java 中,假设我们的 Calculator 类的 multiply() 方法没有实现,我们可以在测试类 CalculatorTest 中先写如下测试代码: package net.oschina.bairrfhoinn.test; import static org.junit.Assert.*; import org.junit.Ignore; import org.junit.Test; import net.oschina.bairrfhoinn.main.Calculator; public class CalculatorTest { private static Calculator calculator = new Calculator(); 。 //此处代码省略 @Ignore("method square() not implemented, please test this later。

") @Test public void testSquare(){ calculator.square(3); assertEquals(9, calculator.getReuslt()); } } 我们再运行壹次测试,会看到如下结果,从图中可以很明显的看出,方法testSquare() 上的 @Ignore 注解已经生效了,运行时直接跳过了它,而方法testAdd(。

5.Java Junit Test 要怎么写

一般不用写,直接测试方法,在测试的方法上加上注解@Test

import org.junit.Test;

public class TestJunit {

@Test

public void TestSaveMethod(){

Food food=new Food("红烧肉", new BigDecimal(45.5).setScale(2, BigDecimal.ROUND_HALF_UP), "hsr.jpg");

SaveFood(food);

}

public void SaveFood(Food food){

if(food!=null){

food.setId(UUID.randomUUID().toString());

System.out.println("Food Save is OK!");

System.out.println("当前ID:"+food.getId()+" 名称:"+food.getName()+" 单价:"+food.getPrice());

}else{

System.out.println("Food Save is False!");

}

}

}

class Food implements Serializable{

private String id;

private String name;

private BigDecimal price;

private String icon;

public Food(String name,BigDecimal price,String icon) {

this.name=name;

this.price=price;

this.icon=icon;

}

public void setId(String id) {

this.id = id;

}

public String getId() {

return id;

}

public String getName() {

return name;

}

public BigDecimal getPrice() {

return price;

}

public String getIcon() {

return icon;

}

}

//这样的话RUN 的时候就会出现JUnit测试

6.如何使用junit编写测试类

首先我们需要先下载相应的 JUnit 相关的 JAR 包,下载的过程可以去 JUnit 的官方网站,也可以直接通过 Maven 资源仓库来完成。

使用简单的 @Test 注解实现我们的测试方法的编写和执行准备工作做好之后,接下来我们就可以开始尝试编写壹个简单的测试代码了。首先,我们编写了壹个 Calculator 类,并提供五个方法分别完成加减乘除以及求平方的运算。

代码如下:package net.oschina.bairrfhoinn.main;public class Calculator {public void add(int n){result += n;}public void substract(int n){result -= n;}public void multiply(int n){result *= n;}public void divide(int n){result /= n;}public void square(int n){result = n * n;}public int getReuslt(){return result;}public void clear(){result = 0;}private static int result;}在测试类中用到了JUnit4框架,自然要把相应地Package包含进来。最主要地一个Package就是org.junit.*。

把它包含进来之后,绝大部分功能就有了。还有一句话也非常地重要“import static org.junit.Assert.*;”,我们在测试的时候使用的壹系列assertEquals()方法就来自这个包。

大家注意壹下,这是壹个静态包含(static),是JDK5中新增添的壹个功能。也就是说,assertEquals是Assert类中的壹系列的静态方法,壹般的使用方式是Assert. assertEquals(),但是使用了静态包含后,前面的类名就可以省略了,使用起来更加的方便。

另外要注意的是,我们的测试类是壹个独立的类,没有任何父类。测试类的名字也可以任意命名,没有任何局限性。

所以我们不能通过类的声明来判断它是不是一个测试类,它与普通类的区别在于它内部的方法的声明,我们接着会讲到。在测试类中,并不是每壹个方法都是用于测试的,所以我们必须使用“注解”来明确表明哪些是测试方法。

“注解”也是JDK5的壹个新特性,用在此处非常恰当。我们可以看到,在某些方法的前有@Before、@Test、@Ignore等字样,这些就是注解,以壹个“@”作为开头。

这些注解都是JUnit4自定义的,熟练掌握这些注解的含义,对于编写恰当的测试类非常重要。接下来我们创建壹个测试类 CalculatorTest.java,代码如下:package net.oschina.bairrfhoinn.test;import static org.junit.Assert.*;import org.junit.Test;import net.oschina.bairrfhoinn.main.Calculator;public class CalculatorTest {private static Calculator calculator = new Calculator();@Testpublic void testAdd(){calculator.add(7);calculator.add(8);assertEquals(15, calculator.getReuslt());}}首先,我们要在方法的前面使用@Test标注,以表明这是壹个测试方法。

对于方法的声明也有如下要求:名字可以随便取,没有任何限制,但是返回值必须为void,而且不能有任何参数。如果违反这些规定,会在运行时抛出壹个异常。

至于方法内该写些什么,那就要看你需要测试些什么了。比如上述代码中,我们想测试壹下add()方法的功能是否正确,就在测试方法中调用几次add函数,初始值为0,先加7,再加8,我们期待的结果应该是15。

如果最终实际结果也是15,则说明add()方法是正确的,反之说明它是错的。assertEquals(15, calculator.getResult());就是用来判断期待结果和实际结果是否相等,其中第壹个参数填写期待结果,第二个参数填写实际结果,也就是通过计算得到的结果。

这样写好之后,JUnit 会自动进行测试并把测试结果反馈给用户。如果想运行它,可以在 eclipse 的资源管理器中选择该类文件,然后点击右键,选择 Run As->JUnit Test 即可看到运行结果。

使用@Test 的属性 Ignore 指定测试时跳过这个方法如果在写程序前做了很好的规划,那么哪些方法是什么功能都应该实现并且确定下来。因此,即使该方法尚未完成,他的具体功能也是确定的,这也就意味着你可以为他编写测试用例。

但是,如果你已经把该方法的测试用例写完,但该方法尚未完成,那么测试的时候无疑是“失败”。这种失败和真正的失败是有区别的,因此 JUnit 提供了壹种方法来区别他们,那就是在这种测试函数的前面加上 @Ignore 标注,这个标注的含义就是“某些方法尚未完成,暂不参与此次测试”。

这样的话测试结果就会提示你有几个测试被忽略,而不是失败。壹旦你完成了相应函数,只需要把@Ignore标注删去,就可以进行正常的测试。

比如说上面的测试类 Calculator.java 中,假设我们的 Calculator 类的 multiply() 方法没有实现,我们可以在测试类 CalculatorTest 中先写如下测试代码:package net.oschina.bairrfhoinn.test;import static org.junit.Assert.*;import org.junit.Ignore;import org.junit.Test;import net.oschina.bairrfhoinn.main.Calculator;public class CalculatorTest {private static Calculator calculator = new Calculator();。 //此处代码省略@Ignore("method square() not implemented, please test this later。

")@Testpublic void testSquare(){calculator.square(3);assertEquals(9, calculator.getReuslt());}}我们再运行壹次测试,会看到如下结果,从图中可以很明显的看出,方法testSquare() 上的 @Ignore 注解已经生效了,运行时直接跳过了它,而方法testAdd()仍然正常的运行并通过了测试。使用注解 @Before 和 @After 来。

  • 文章版权属于文章作者所有,转载请注明 https://dongkepu.com/zonghezhishi/qo9re4.html