如何写CreditCard的测试用例

fish_birds 2008-11-24 07:34:58
我在写一个CreditCard的测试用例时不知怎样去写了,因为卡的类型有三种(VISA,DISCOVER,MASTER),账户长度也有三种(6;15;16),我把源代码贴出来,望大家帮我看看。

源文件


package Account;



public class CreditCard {

String cardType;
String cardNumber;
String cardExpDate;

//final String CC_DATA_FILE = "CC.txt";

final String CC_DATA_FILE = "CreditCardInfo.txt";

//constructor of CreditCard
public CreditCard(String ccType, String ccNumber,
String ccExpDate)
{
cardType = ccType;
cardNumber = ccNumber;
cardExpDate = ccExpDate;
}

//check if the credit card number is valid or not
//length of number for Visa is 16
//length of number for Discover is 15
//length of number for MASTER is 16
public boolean isValid() {
/*
Let's go with simpler validation
here to keep the example simpler.
*/
if (getCardType().equals(AccountManager.VISA)) {
return (getCardNumber().trim().length() == 6);
}
if (getCardType().equals(AccountManager.DISCOVER)) {
return (getCardNumber().trim().length() == 15);
}
if (getCardType().equals(AccountManager.MASTER)) {
return (getCardNumber().trim().length() == 16);
}

return false;
}

//save credit card info to cc.txt
public boolean save() {
FileUtil futil = new FileUtil();
String dataLine =
getCardType() + "," + getCardNumber() + "," +
getCardExpDate();
return futil.writeToFile(CC_DATA_FILE, dataLine, true,
true);
}
public String getCardType() {
return cardType;
}
public String getCardNumber() {
return cardNumber;
}
public String getCardExpDate() {
return cardExpDate;
}

}





我写的测试代码

package Account;

import javax.swing.JTextField;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import junit.framework.TestCase;

public class CreditCardTest extends TestCase {
// log4j日志部分开始
private static final String LOG4J_PROPERTIES = "log4j.properties";
static final Logger logger = (Logger) Logger.getLogger(CreditCardTest.class.getName());
private static void readCfg()
{
PropertyConfigurator.configure (LOG4J_PROPERTIES);
}
// log4j日志部分结束
private CreditCard creditCard;
private CreditCard creditCard1;
private CreditCard creditCard2;

public CreditCardTest(String name)
{
super(name);
}

protected void setUp() throws Exception
{
super.setUp();



//看看我在是不是错了
creditCard = new CreditCard("111222","2008-11-23","VISA");
creditCard1 = new CreditCard("111222333444555","2008-11-23","DISCOVER");
creditCard2 = new CreditCard("1112223334445556","2008-11-23","MASTER");
}


protected void tearDown() throws Exception
{
super.tearDown();
}

public void testIsValid()
{
// fail("尚未实现");
boolean expectedReturn = true;
boolean actualReturn = creditCard.isValid();
assertEquals("return value",expectedReturn,actualReturn);
//日志
PropertyConfigurator.configure("D:\\My Documents\\XDE Workspace\\Test\\log4j.properties");
readCfg();
logger.info("Input Address isValid =" + creditCard.isValid());
logger.info("expectedReturn = "+expectedReturn);
logger.info("actualReturn = "+creditCard.isValid());
if(expectedReturn==actualReturn)
{
logger.info("IsValidTest() passed.");
}
else
{
logger.error("IsValidTest() failed.");
}
}

public void testSave()
{
// fail("尚未实现");
boolean expectedReturn = true;
boolean actualReturn = creditCard.save();
assertEquals("return value",expectedReturn,actualReturn);
// 日志
PropertyConfigurator.configure("D:\\My Documents\\XDE Workspace\\Test\\log4j.properties");
readCfg();
logger.info("Input Account save =" + creditCard.save());
logger.info("expectedReturn = "+expectedReturn);
logger.info("actualReturn = "+creditCard.save());
if(expectedReturn==actualReturn)
{
logger.info("IsValidTest() passed.");
}
else
{
logger.error("IsValidTest() failed.");

}

public void testGetCardType()
{
//fail("尚未实现");



//望哪位大侠把这个给我写一下,其他的我就照着这个自己写。
CreditCard m = creditCard;
CreditCard expectedReturn = creditCard1;
CreditCard actualReturn = creditCard2.isValid(m);

}

public void testGetCardNumber()
{
fail("尚未实现");
}

public void testGetCardExpDate()
{
fail("尚未实现");
}

}

...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzb717 2009-01-06
  • 打赏
  • 举报
回复
帮顶
fish_birds 2008-11-26
  • 打赏
  • 举报
回复
[color=#FF0000]不好意思,我想请问一下,如果这样写了,那么expectedReturn 和actualReturn 该怎样写呢?
像下面的这样,在testGetCardType() 函数中如何写expectedReturn 和actualReturn ?[/color]
boolean expectedReturn = true;
boolean actualReturn = creditCard.isValid();
fish_birds 2008-11-25
  • 打赏
  • 举报
回复
谢谢!我先做做看!
bruni 2008-11-24
  • 打赏
  • 举报
回复
public void testGetCardType()
{
//fail("尚未实现");
assertEquals(AccountManager.VISA, creditCard.getCardType());
assertEquals(AccountManager.DISCOVER, creditCard1.getCardType());
assertEquals(AccountManager.MASTER, creditCard2.getCardType());
}
lihan6415151528 2008-11-24
  • 打赏
  • 举报
回复
单纯看你红色部分,没有什么错误了

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧