JAVA编程基础(五)工程-包-类-属性-方法-单元测试用例

上一节单元测试的答案:
1. c 2. b 3. b 4. d
5.

package com.makotojava.intro;

public class Person {
    private String name;
    private int age;
    private int height;
    private int weight;
    private String eyeColor;
    private String gender;

    public String getName() {
        return name;
    }
    public void setName(String value) {
        name = value;
    }
    // Other getter/setter combinations...
    public int getAge() {
        return age;
    }
    public void setAge(int value) {
        age = value;
    }
    public int getHeight() {
        return height;
    }
    public void setHeight(int value) {
        height = value;
    }
    public int getWeight() {
        return weight;
    }
    public void setWeight(int value) {
        weight = value;
    }
    public String getEyeColor() {
        return eyeColor;
    }
    public void setEyeColor(String value) {
        eyeColor = value;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String value) {
        gender = value;
    }

}

6.b 7.c

在Eclipse中创建和测试一个java类
更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn.net/zixiao217

本节学习目标

  • 使用Eclipse Package Explorer 创建一个工程、包和类
  • 给你的类添加变量和方法
  • 学会使用Logger类观察你的应用的行为
  • 使用Eclipse代码生成器
  • 创建一个JUnit单元测试类并运行测试

你的Person类

你将创建你的第一个java类并使用它来工作 —— 到目前为止,你已经抽象出一个Person类了(如果你读过了前面几节的话)。

JAVA编程基础(五)工程-包-类-属性-方法-单元测试用例_第1张图片

首先,你得安装JDK和IDE(这里我们使用的是Eclipse),请参看第一节搭建开发环境的图文内容

Step1.创建java工程

打开你的Eclipse,解压下载的zip文件,执行其中的eclipse.exe文件,在弹出的界面中选择一个Workspace工作空间,指定一个目录(文件夹),笔者指定的是E:\eclipseWorkspace4JavaBasic。

打开Eclipse后进入到欢迎页面,你有兴趣的话可以看看这些内容

JAVA编程基础(五)工程-包-类-属性-方法-单元测试用例_第2张图片

大都选择可以直接关闭欢迎页面进入到工作界面

JAVA编程基础(五)工程-包-类-属性-方法-单元测试用例_第3张图片

因为我下载的是JAVA EE版本Eclipse,所以这样创建一个java工程:File–>New–>Project–>再选则Java Project

JAVA编程基础(五)工程-包-类-属性-方法-单元测试用例_第4张图片

指定工程名,这里我们不妨指定为javaBasic,点击Finish完成,至此一个java工程创建完毕了。

JAVA编程基础(五)工程-包-类-属性-方法-单元测试用例_第5张图片

Step2.创建包

右键点击工程 javaBasic> New > Package,包名不妨指定为com.makotojava.intro ,点击完成。

JAVA编程基础(五)工程-包-类-属性-方法-单元测试用例_第6张图片

Step3.创建类

右键点击刚刚创建的包>New->Class,类名我们先叫Person,点击完成。

JAVA编程基础(五)工程-包-类-属性-方法-单元测试用例_第7张图片

Step4.添加内置的日志类

在你编写更多代码之前,你应该知道让你的程序告诉你它做了什么。

java类库中有一个java.util.logging的包,内建了一种日志机制可以以一种可读形式来搜集程序的相关信息。日志记录器是命名的实体,你可以调用Logger的静态发方法创建。

//不必手动输入,你可以在程序中输入Logger后按住Ctrl+Shift+O来自动导入该包
import java.util.logging.Logger;
//...
Logger l = Logger.getLogger(getClass().getName());

调用Logger的getLogger方法需要传入一个字符串。这里我们传入Person类的名字,需要使用Person.class.getName()

package com.makotojava.intro;

import java.util.logging.Logger;

public class Person {
    private static Logger log = Logger.getLogger(Person.class.getName());

}

Step5.添加类的成员变量

在上一节中,你看到了怎样充实一个Person类,但是我在之前没有解释更多的语法。现在你可以学会正是地怎样去添加一些成员变量(属性)了。
为了方便起见,Listing1先重复展示上一节中你看到的Person类:

package com.makotojava.intro;
public class Person {
  private String name;
  private int age;
  private int height;
  private int  weight;
  private String eyeColor;

  private String gender;
  public Person() {
    // Nothing to do...
  }

  public Person(String name, int age, int height, int weight String eyeColor, String gender) {
    this.name = name;
    this.age = age;
    this.height = height;
    this.weight = weight;
    this.eyeColor = eyeColor;
    this.gender = gender;
  }
}

我们回顾一下,一个变量包含访问控制修饰符、数据类型和变量名,也可能指定初始值。上一节中,我们看到了怎样定义访问控制修饰符和变量名。
数据类型可以使原始数据类型或者引用类型。举个例子,age就是原始数据类型(int),name是引用类型(String)。JDK封装了很多可用的类比如java.langString在java.lang包下,使用时可以不用显式的import。

Table 1展示了8种基本类型,并且给出了默认的初始值,如果这些类型的变量你没有指定初始值的话。

Type数据类型 Size字节大小 Default value默认值 Range of values表示的范围
boolean n/a false true or false
byte 8 bits 0 -128 to 127
char 16 bits (unsigned) \u0000’ \u0000’ to \uffff’ or 0 to 65535
short 16 bits 0 -32768 to 32767
int 32 bits 0 -2147483648 to 2147483647
long 64 bits 0 -9223372036854775808 to 9223372036854775807
float 32 bits 0.0 1.17549435e-38 to 3.4028235e+38
double 64 bits 0.0 4.9e-324 to 1.7976931348623157e+308

Step6.添加getter、setter、构造器、main方法

截止到目前我们的类是这样的:

package com.makotojava.intro;

import java.util.logging.Logger;

public class Person {

    //日志记录器
    private static Logger log = Logger.getLogger(Person.class.getName());

    private String name;
    private int age;
    private int height;
    private int weight;
    private String eyeColor;
    private String gender;

}

现在来添加getter、setter方法。右键点击类名-> Source > Generate Getters and Setters….选择Select All,点击OK;或者Shift+Alt-> Generate Getters and Setters….选择Select All,点击OK。

现在我们再添加一个无参构造器,右键点击类名-> Source 或者Shift+Alt选择Generate Contrustor from SuperClasse…
我们再添加一个包含所有属性参数的构造器,右键点击类名-> Source 或者Shift+Alt选择Generate Contrustor using Fields…选择Select All,点击OK。

再添加一个main方法。可以输入main后按住Alt+/提示生成main方法。

至此我们的Person类应该是这样子的:

package com.makotojava.intro;

import java.util.logging.Logger;

public class Person {

    //日志记录器
    private static Logger log = Logger.getLogger(Person.class.getName());

    //成员变量(属性)
    private String name;
    private int age;
    private int height;
    private int weight;
    private String eyeColor;
    private String gender;

    //空构造器
    public Person() {
        super();
        // TODO Auto-generated constructor stub
    }

    //包含所有属性的构造器
    public Person(String name, int age, int height, int weight, String eyeColor, String gender) {
        super();
        this.name = name;
        this.age = age;
        this.height = height;
        this.weight = weight;
        this.eyeColor = eyeColor;
        this.gender = gender;
    }


    //Getter、Setter方法
    public static Logger getLog() {
        return log;
    }

    public static void setLog(Logger log) {
        Person.log = log;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    public String getEyeColor() {
        return eyeColor;
    }

    public void setEyeColor(String eyeColor) {
        this.eyeColor = eyeColor;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    //main方法
    public static void main(String[] args) {

    }

}

Step7.生成一个JUnit测试用例

当你实例化一个Person对象的时候,你可以生成一个JUnit单元测试用例,打印对象的状态到控制台。
从这个意义上讲,这个测试用例确保调用构造器和属性是正确的。

在Package Explorer视图中,右键点击Person类->New > java->JUint->JUnit Test Case,使用默认的,点击next。你可以选择勾选某几个方法测试,这里我们只测试一下包含所有属性参数的构造器,点击Finish会提示你添加一个JUnit测试包,点击OK。

在测试类里添加如下代码:

package com.makotojava.intro;

import static org.junit.Assert.assertEquals;

import java.util.logging.Logger;

import org.junit.Test;

public class PersonTest {

    @Test
    public void testPersonStringIntIntIntStringString() {
        Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
          Logger l = Logger.getLogger(Person.class.getName());
          l.info("Name: " + p.getName());
          l.info("Age:" + p.getAge());
          l.info("Height (cm):" + p.getHeight());
          l.info("Weight (kg):" + p.getWeight());
          l.info("Eye Color:" + p.getEyeColor());
          l.info("Gender:" + p.getGender());
          assertEquals("Joe Q Author", p.getName());
          assertEquals(42, p.getAge());
          assertEquals(173, p.getHeight());
          assertEquals(82, p.getWeight());
          assertEquals("Brown", p.getEyeColor());
          assertEquals("MALE", p.getGender());
    }

}

Step8.运行你的测试用例

在Package Explorer视图中,右键点击PersonTest->Run AS->JUint Test。

JAVA编程基础(五)工程-包-类-属性-方法-单元测试用例_第8张图片

我们看到单元测试运行成功,错误数为0,失败数为0。

你可能感兴趣的:(【Java编程基础】,java,编程,单元测试)