测试用例不是证明你是对的,而是证明你没有错
测试用例用来达到想要的预期结果,但对于逻辑错误无能为力
作用:减少时间,提升代码质量
第一步:右键项目,选择new --->other
第二步:书写类
package com.ly.util;
public class Calculate {
public int add(int a,int b) {
return a+b;
}
public int subtract(int a,int b) {
return a-b;
}
public int multiply(int a,int b) {
return a*b;
}
public int divide(int a,int b) {
return a/b;
}
}
第三步:书写测试用例
package com.ly.util;
import static org.junit.Assert.*;
import org.junit.Test;
public class CalculateTest {
@Test
public void testAdd() {
assertEquals(8, new Calculate().add(5, 3));
}
@Test
public void testSubtract() {
assertEquals(2, new Calculate().subtract(5, 3));
}
@Test
public void testMultiply() {
assertEquals(15, new Calculate().multiply(5, 3));
}
@Test
public void testdevide() {
assertEquals(1, new Calculate().divide(5, 3));
}
}
junit的运行流程
测试套件的使用
junit参数化设置
package com.ly.util;
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;
/**
* 1、更改默认的测试运行器为RunWith(Parameterized.class)
* 2、声明变量存放预期值和结果值
* 3、声明一个返回值为Collection的公共静态方法,并使用@Parameters进行修饰
* 4、为测试类声明一个带有参数的公共构造函数,并在其中为之声明变量赋值
*/
@RunWith(Parameterized.class)
public class ParameterTest {
int expected=0;
int input1=0;
int input2=0;
@Parameters
public static Collection<Object[]> t(){
return Arrays.asList(new Object[][] {
{3,1,2},
{4,2,2}
});
}
public ParameterTest(int expected,int input1,int input2) {
this.expected=expected;
this.input1=input1;
this.input2=input2;
}
@Test
public void testAdd() {
assertEquals(expected, new Calculate().add(input1,input2));
}
}