java和junit写类与测试类
数字图书馆系统中有一个类book,有“书名(name)”、作者(author)可借出数(availNum)等属性,有“构造器(book)、设置可借出数(setAvailN...
数字图书馆系统中有一个类book,有“书名(name)”、作者(author)
可借出数(availNum)等属性,有“构造器(book)、设置可借出数(setAvailNum)”、预借(subscribe)、取消预借(cancelSubscribe)等操作。若availNum非零,“预借”操作使availNum减一;若availNum为零,“预借”为空操作。“取消预借”使availNum 加一。请用Java和junit写出book类及其测试类的源码 展开
可借出数(availNum)等属性,有“构造器(book)、设置可借出数(setAvailNum)”、预借(subscribe)、取消预借(cancelSubscribe)等操作。若availNum非零,“预借”操作使availNum减一;若availNum为零,“预借”为空操作。“取消预借”使availNum 加一。请用Java和junit写出book类及其测试类的源码 展开
4个回答
展开全部
/** Book类 */
public class Book {
public String name;
public String author;
private int availNum;
public Book() {
this("", "", 0);
}
public Book(String name, String author, int availNum) {
this.name = name;
this.author = author;
this.availNum = availNum;
}
public int getAvailNum() {
return availNum;
}
public void setAvailNum(int availNum) {
this.availNum = availNum;
}
public boolean subscribe() {
if (availNum > 0) {
availNum--;
return true;
}
return false;
}
public boolean cancelSubscribe() {
availNum++;
return true;
}
}
/** Book类的单元测试类 */
import junit.framework.TestCase;
public class TestBook extends TestCase {
public void testBook() {
Book book = new Book("Thinking in Java", "Bruce Eckel", 3);
assertEquals(true, book.subscribe());// 第一次预借,应该是成功的
assertEquals(2, book.getAvailNum());// 此时的可预借数是2
assertEquals(true, book.cancelSubscribe());// 取消预借,应该是成功的
assertEquals(3, book.getAvailNum());// 此时的可预借数是3
book.setAvailNum(0);// 将可预借数设为0
assertEquals(false, book.subscribe());// 此时预借,应该是不成功的
}
public static void main(String[] args) {
junit.textui.TestRunner.run(Book.class);
}
}
上面的测试类可以不要main函数,直接在集成开发环境里用JUnit执行单元测试。
public class Book {
public String name;
public String author;
private int availNum;
public Book() {
this("", "", 0);
}
public Book(String name, String author, int availNum) {
this.name = name;
this.author = author;
this.availNum = availNum;
}
public int getAvailNum() {
return availNum;
}
public void setAvailNum(int availNum) {
this.availNum = availNum;
}
public boolean subscribe() {
if (availNum > 0) {
availNum--;
return true;
}
return false;
}
public boolean cancelSubscribe() {
availNum++;
return true;
}
}
/** Book类的单元测试类 */
import junit.framework.TestCase;
public class TestBook extends TestCase {
public void testBook() {
Book book = new Book("Thinking in Java", "Bruce Eckel", 3);
assertEquals(true, book.subscribe());// 第一次预借,应该是成功的
assertEquals(2, book.getAvailNum());// 此时的可预借数是2
assertEquals(true, book.cancelSubscribe());// 取消预借,应该是成功的
assertEquals(3, book.getAvailNum());// 此时的可预借数是3
book.setAvailNum(0);// 将可预借数设为0
assertEquals(false, book.subscribe());// 此时预借,应该是不成功的
}
public static void main(String[] args) {
junit.textui.TestRunner.run(Book.class);
}
}
上面的测试类可以不要main函数,直接在集成开发环境里用JUnit执行单元测试。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不拷贝别人的代码了,人家也不容易呀,参考下面网址吧:
http://tech.it168.com/j/2007-08-27/200708271553159.shtml
http://tech.it168.com/j/2007-08-27/200708271553159.shtml
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你的Book类放到和这个一个包下
package com.test.junit3;
import junit.framework.Assert;
import junit.framework.TestCase;
public class BookTest extends TestCase {
public void testSubscibe()
{
Book book = new Book();
int result = book.subscibe(...//你的业务逻辑);
//断言
Assert.assertEquals(这里是一个int值即你的需要断言的东西,result);
}
public void testCancelSubscribe(){
Book book = new Book();
int result = book.cancelSubscribe(...//你的业务逻辑);
//断言,这里需要考虑到非0的情况
Assert.assertEquals(这里是一个int值即你的需要断言的东西,result);
}
}
package com.test.junit3;
import junit.framework.Assert;
import junit.framework.TestCase;
public class BookTest extends TestCase {
public void testSubscibe()
{
Book book = new Book();
int result = book.subscibe(...//你的业务逻辑);
//断言
Assert.assertEquals(这里是一个int值即你的需要断言的东西,result);
}
public void testCancelSubscribe(){
Book book = new Book();
int result = book.cancelSubscribe(...//你的业务逻辑);
//断言,这里需要考虑到非0的情况
Assert.assertEquals(这里是一个int值即你的需要断言的东西,result);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
class book {
private String name = "";
private String author = "";
private int availNum = 0;
public book() {
}
public void setAvailNum(boolean lendFlag) {
if (lendFlag) {
subscribe();
}
else {
cancelSubscribe();
}
}
private void subscribe() {
if (this.availNum != 0) {
this.availNum--;
}
}
private void cancelSubscribe() {
this.availNum++;
}
}
private String name = "";
private String author = "";
private int availNum = 0;
public book() {
}
public void setAvailNum(boolean lendFlag) {
if (lendFlag) {
subscribe();
}
else {
cancelSubscribe();
}
}
private void subscribe() {
if (this.availNum != 0) {
this.availNum--;
}
}
private void cancelSubscribe() {
this.availNum++;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询