前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JAVA编程基础(五)工程-包-类-属性-方法-单元测试用例

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

作者头像
青山师
发布2023-05-04 20:18:27
2810
发布2023-05-04 20:18:27
举报

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

代码语言:javascript
复制
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类

本节学习目标

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

你的Person类

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

这里写图片描述
这里写图片描述

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

Step1.创建java工程

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

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

这里写图片描述
这里写图片描述

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

这里写图片描述
这里写图片描述

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

这里写图片描述
这里写图片描述

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

这里写图片描述
这里写图片描述

Step2.创建包

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

这里写图片描述
这里写图片描述

Step3.创建类

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

这里写图片描述
这里写图片描述

Step4.添加内置的日志类

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

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

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

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

代码语言:javascript
复制
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类:

代码语言:javascript
复制
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方法

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

代码语言:javascript
复制
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类应该是这样子的:

代码语言:javascript
复制
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。

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

代码语言:javascript
复制
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。

这里写图片描述
这里写图片描述

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本节学习目标
  • 你的Person类
  • Step1.创建java工程
  • Step2.创建包
  • Step3.创建类
  • Step4.添加内置的日志类
  • Step5.添加类的成员变量
  • Step6.添加getter、setter、构造器、main方法
  • Step7.生成一个JUnit测试用例
  • Step8.运行你的测试用例
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档