java中的JUnit测试
步骤:
- 1.创建Java类,进行单元测试。
- 此时的Java类要求:此类是public的、此类提供公共的无参的构造器
- 2.此类中声明单元测试方法
- 此时的单元测试方法:方法的权限是public,没有返回值,没有形参
- 3.次单元测试方法上需要声明注解:@Test,并在单元测试类中导入:import org.junit.Test;
- 4.声明好单元测试方法后,就可以在方法内测试相关代码
- 说明:如果执行结果没有任何异常:绿条,有异常:红条
public class JUnitTest {
int num = 10;
@Test
public void testEquals(){
String s1 = "MM";
String s2 = "MM";
System.out.println(s1.equals(s2));
// Object obj = new String("GG");
// Date date = (Date)obj;
System.out.println(num);
show();
}
public void show(){
num = 20;
System.out.println("show()...");
}
@Test
public void testToString(){
String s2 = "MM";
System.out.println(s2.toString());
}
}
包装类的使用:
-
1.java提供了8中基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征
-
2.基本数据类型、包装类、String三者之间的相互转换
public class WrapperTest {
//基本数据类型-->包装类:调用包装类的构造器
@Test
public void test1(){
int num1 = 10;
// System.out.println(num1.toString());//基本数据类型没有类的方法
Integer in1 = new Integer(num1);//Integer重写了tostring方法
System.out.println(in1.toString());
Integer in2 = new Integer("123");
System.out.println(in2.toString());
//测试不通过
// Integer in3 = new Integer("123abc");
// System.out.println(in3);
Float f1 = new Float(12.3f);
Float f2 = new Float("12.3");
System.out.println(f1);
System.out.println(f2);
//忽略大小写,和true一样即为true
Boolean b1 = new Boolean(true);
Boolean b2 = new Boolean("true");
Boolean b3 = new Boolean("true123");
Boolean b4 = new Boolean("123");
Boolean b5 = new Boolean("TrUe");
System.out.println(b1);//true
System.out.println(b2);//true
System.out.println(b3);//false
System.out.println(b4);//false
System.out.println(b5);//true
Order order = new Order();
System.out.println(order.isMale);//false
System.out.println(order.isFemale);//false
}
//包装类-->基本数据类型:调用包装类的XXXValue()
@Test
public void test2(){
Integer in1 = new Integer(12);
int i1 = in1.intValue();
System.out.println(i1 + 1);
Float f1 = new Float(12.3);
float f2 = f1.floatValue();
System.out.println(f2);
}
public void method(Object obj){
System.out.println(obj);
}
@Test
public void test3(){
// int num1 = 10;
// //基本数据类型转化成包装类对象
// method(num1);
//自动装箱
int num2 = 10;
Integer in1 = num2;//int型变量直接赋给一个类//自动装箱
boolean b1 = true;
Boolean b2 = b1;//自动装箱
//自动拆箱:包装类->基本数据类型
System.out.println(in1.toString());
int num3 = in1;//自动拆箱
}
//基本数据类型、包装类---->String类型:调用String重载的valueof(XX XX)
@Test
public void test4(){
int num1 = 10;
//方式1:连接运算
String str1 = num1 + "ee";
System.out.println(str1);
//方式2:
float f1 = 12.3f;
String str2 = String.valueOf(f1);
System.out.println(str2);
Double d1 = new Double(12.4);
String str3 = String.valueOf(d1);
System.out.println(str3);
}
//String类型-->基本数据类型、包装类:调用包装类的parseXXX()
@Test
public void test5(){
String str1 = "123";
// int num1 = (int)str1;
// Integer mun1 = (Integer)str1;//没有子父类关系,不能强转
int num2 = Integer.parseInt(str1);
System.out.println(num2 + 1);
String str2 = "true";
boolean b1 = Boolean.parseBoolean(str2);
System.out.println(b1);//true
String str3 = "true1";
boolean b2 = Boolean.parseBoolean(str3);
System.out.println(b2);//false
}
}
class Order{
boolean isMale;
Boolean isFemale;
}
面试题
import org.junit.Test;
/*
* 关于包装类使用的面试题
*
* */
public class InterviewTest {
@Test
public void test1(){
Object o1 = true ? new Integer(1) : new Double(2.0);//自动提升1.0
System.out.println(o1);//
}
@Test
public void test2(){
Object o2;
if(true)
o2 = new Integer(1);
else
o2 = new Double(2.0);
System.out.println(o2);//1
}
@Test
public void test3(){
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j);//false
Integer m = 1;
Integer n = 1;
System.out.println(m == n);//true
Integer x = 127;
Integer y = 127;
System.out.println(x == y);//true
//Integer内部定义了IntegerCache,Integer内部定义了一个数组Integer[],存放-128~127,此时x、y都是数组里同一地址上的值,可以直接使用数组中元素
Integer x1 = 128;
Integer y1 = 128;
System.out.println(x1 == y1);//false
//出了内置数组范围,重新new一个Integer对象
}
}
练习题:用vector代替数组
public class ScoreTest {
public static void main(String[] args) {
//1.实例化Scanner,用于从键盘获取学生成绩
Scanner scan = new Scanner(System.in);
//2.创建Vector对象,Vector v = new Vector();相当于原来的数组
Vector v = new Vector();
//3.通过for(;;)或者while(true)方式,给Vector中添加数组
int maxScore = 0;
for(;;){
System.out.println("请输入学生成绩(负数代表结束):");
int score = scan.nextInt();
//3.2当输入是负数时,跳出循环
if(score < 0){
break;
}
if(score > 100){
System.out.println("输入数据非法,请重新输入");
continue;
}
//3.1添加操作::v.addElement(Object obj)
//jdk5.0之前:
// Integer inScore = new Integer(score);
// v.addElement(inScore);//多态
v.addElement(score);//自动装箱
//4.获取学生成绩的最大值
if(maxScore < score){
maxScore = score;
}
}
//5.遍历Vector,得到每个学生的成绩,并与最大成绩比较,得到每个学生等级
char level;
for(int i = 0; i < v.size(); i++){
Object obj = v.elementAt(i);
//jdk5.0之前
// Integer inScore = (Integer)obj;
// int score = inScore.intValue();
int score = (int)obj;
if(maxScore - score <= 10){
level = 'A';
}else if(maxScore - score <= 20){
level = 'B';
}else if(maxScore - score <= 30){
level = 'C';
}else{
level = 'D';
}
System.out.println("student-" + i + "score is " + score + ",level is" + level);
}
}
}