MathTool测试类课堂实践(5月17日)20155318
对P145 MathTool.java (码云链接)
在IDEA中,使用JUnit进行单元测试,测试用例不少于三个,要包含正常情况,边界情况。提交测试代码和运行结果截图,加上学号水印,提交码云代码链接。
代码
- 产品代码(同课本P145 MathTool.java)
public class mathTool {
public static int sum(int...numbers) {
int sum=0;
for(int number:numbers){
sum+=number;
}
return sum;
}
}
- 测试正常情况
public void testNormal()throws Exception{
assertEquals(6,mathTool.sum(1,2,3));
if(mathTool.sum(a1)==15)
{
System.out.println("Passed!");
}
else{
System.out.println("Failed!");
}
if(mathTool.sum(a3)==-28){
System.out.println("Passed!");
}
else {
System.out.println("Failed!");
}
}
- 测试边界情况 (我的理解是数组只有一个元素时,不知道理解的对不对。。。)
public void testBoundary()throws Exception{
assertEquals(1,mathTool.sum(1));
assertEquals(0,mathTool.sum());
}
- 完整代码(码云链接)
截图
图书馆Book类 (码云链接)
设计并实现一个Book类,定义义成Book.java,Book 包含书名,作者,出版社和出版日期,这些数据都要定义getter和setter。定义至少三个构造方法,接收并初始化这些数据。覆盖(Override)toString方法,返回良好的含有多行的书的描述信息。覆盖equals方法,书名,作者,出版社和出版日期完全一致才说明两本书是一样的。创建一个测试类Bookshelf, 其中的main方法创建并更新几个Book对象。Book至少包含三本本学期教材内容。
代码 (码云链接)
- Book类
package exam20170517;
import java.lang.String;
import java.io.StringWriter;
import java.lang.Object;
public class Book {
public String name;
public String writer;
public String publisher;
public long date;
public Book(String name, String writer, String publisher, long date) { //构造方法
this.setname(name);
this.setWriter(writer);
this.setPublisher(publisher);
this.setDate(date);
}
public String getname() {
return name;
}
public void setname(String name) {
this.name = name;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public long getDate() {
return date;
}
public void setDate(long date) {
this.date = date;
}
@Override
public String toString() {
return "|--书名:" + this.getname() + "
" + "|--作者:" + this.getWriter() +
"
" + "|--出版社:" + this.getPublisher() + "
" + "|--出版日期:" + this.getDate();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Book book = (Book) o;
if (date != book.date) return false;
if (!name.equals(book.name)) return false;
if (!writer.equals(book.writer)) return false;
return publisher.equals(book.publisher);
}
}
- 书架(测试类,测试输出和比较两本书是否相同)
package exam20170517;
import java.lang.Object;
public class BookShelf {
public static void main(String[] args) {
Book b1 = new Book("Java程序设计", "林xx", "出版社1", 20110101);
System.out.println(b1);
Book b2 = new Book("数据结构", "王xx", "出版社2", 20120101);
System.out.println(b2);
Book b3 = new Book("密码学", "刘xx", "出版社3", 20130101);
System.out.println(b3);
Book b4 = new Book("Java程序设计", "林xx", "出版社1", 20110101);
System.out.println(b4);
System.out.print("书一和书二;");
System.out.println(b1.equals(b2));
System.out.print("书一和书四;");
System.out.println(b1.equals(b4));
}
}
截图
补充
上图的输出不符合实际,经修改,如下~