java和junit写类与测试类

数字图书馆系统中有一个类book,有“书名(name)”、作者(author)可借出数(availNum)等属性,有“构造器(book)、设置可借出数(setAvailN... 数字图书馆系统中有一个类book,有“书名(name)”、作者(author)
可借出数(availNum)等属性,有“构造器(book)、设置可借出数(setAvailNum)”、预借(subscribe)、取消预借(cancelSubscribe)等操作。若availNum非零,“预借”操作使availNum减一;若availNum为零,“预借”为空操作。“取消预借”使availNum 加一。请用Java和junit写出book类及其测试类的源码
展开
 我来答
JarodYv
2008-07-24 · TA获得超过1414个赞
知道小有建树答主
回答量:227
采纳率:0%
帮助的人:312万
展开全部
/** 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执行单元测试。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
智晓溪3727
2008-07-27 · TA获得超过538个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:367万
展开全部
我不拷贝别人的代码了,人家也不容易呀,参考下面网址吧:
http://tech.it168.com/j/2007-08-27/200708271553159.shtml
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tq04q5k
2008-08-06 · 超过10用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:31.1万
展开全部
把你的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);

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
辉煌kind
2008-07-24 · TA获得超过1484个赞
知道小有建树答主
回答量:751
采纳率:0%
帮助的人:763万
展开全部
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++;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式