如何写CreditCard的测试用例
我在写一个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("尚未实现");
}
}