JAVA编程基础(五)工程-包-类-属性-方法-单元测试用例
2016-10-21 16:51
441 查看
上一节单元测试的答案:
1. c 2. b 3. b 4. d
5.
6.b 7.c
在Eclipse中创建和测试一个java类
更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn.net/zixiao217
给你的类添加变量和方法
学会使用Logger类观察你的应用的行为
使用Eclipse代码生成器
创建一个JUnit单元测试类并运行测试
首先,你得安装JDK和IDE(这里我们使用的是Eclipse),请参看第一节搭建开发环境的图文内容
打开Eclipse后进入到欢迎页面,你有兴趣的话可以看看这些内容
大都选择可以直接关闭欢迎页面进入到工作界面
因为我下载的是JAVA EE版本Eclipse,所以这样创建一个java工程:File–>New–>Project–>再选则Java Project
指定工程名,这里我们不妨指定为javaBasic,点击Finish完成,至此一个java工程创建完毕了。
java类库中有一个java.util.logging的包,内建了一种日志机制可以以一种可读形式来搜集程序的相关信息。日志记录器是命名的实体,你可以调用Logger的静态发方法创建。
调用Logger的getLogger方法需要传入一个字符串。这里我们传入Person类的名字,需要使用Person.class.getName()
为了方便起见,Listing1先重复展示上一节中你看到的Person类:
我们回顾一下,一个变量包含访问控制修饰符、数据类型和变量名,也可能指定初始值。上一节中,我们看到了怎样定义访问控制修饰符和变量名。
数据类型可以使原始数据类型或者引用类型。举个例子,age就是原始数据类型(int),name是引用类型(String)。JDK封装了很多可用的类比如java.langString在java.lang包下,使用时可以不用显式的import。
Table 1展示了8种基本类型,并且给出了默认的初始值,如果这些类型的变量你没有指定初始值的话。
现在来添加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 Explorer视图中,右键点击Person类->New > java->JUint->JUnit Test Case,使用默认的,点击next。你可以选择勾选某几个方法测试,这里我们只测试一下包含所有属性参数的构造器,点击Finish会提示你添加一个JUnit测试包,点击OK。
在测试类里添加如下代码:
我们看到单元测试运行成功,错误数为0,失败数为0。
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类了(如果你读过了前面几节的话)。首先,你得安装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的静态发方法创建。
//不必手动输入,你可以在程序中输入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。我们看到单元测试运行成功,错误数为0,失败数为0。
相关文章推荐
- Ajax基础教程--- 2.2 方法和属性
- 积少成多Flash(2) - ActionScript 3.0 基础之包、类、包外类、命名空间、属性、方法、接口和继承
- jqGrid 基础属性和方法
- c++基础4:c++工程的动态链接库dll的导出使用方法
- JS基础之object所具有的属性和方法
- VB COM基础讲座之添加属性和方法
- 标签自定义属性,获取和操作的方法封装以及在此基础上对标签原有属性的扩展...
- Python基础教程——9魔法方法、属性及迭代器【总结】
- Objective-C 基础,类和对象,方法和消息,已声明的属性和存取方法,块对象,协议和范畴类,预定义类型和编码策略
- 【C#基础】之WinForm窗体常用控件的属性、方法及事件简介
- 积少成多Flash(2) - ActionScript 3.0 基础之包、类、包外类、命名空间、属性、方法、接口和继承
- ajax技术基础XMLDOM对象的方法和属性
- 基础_C# 方法、方法参数和返回值、属性 、索引器 、访问修饰符 访问修饰符
- Python基础教程——9魔法方法、属性及迭代器【总结】
- C#基础(类,属性,方法,对象的创建,结构体)
- 积少成多Flash ActionScript 3.0(2) - 基础之包、类、包外类、命名空间、属性、方法、接口和继承
- Moq测试基础说谈(三)——属性,常用方法
- 【C#基础】之WinForm窗体常用控件的属性、方法及事件简介
- 【JS基础回顾】String对象及其常用属性以及方法
- 【C#基础】之WinForm窗体常用控件的属性、方法及事件简介 .