我在写一个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("尚未实现");
 }}

解决方案 »

  1.   

    public void testGetCardType() 

      //fail("尚未实现"); 
      assertEquals(AccountManager.VISA, creditCard.getCardType());
      assertEquals(AccountManager.DISCOVER, creditCard1.getCardType());
      assertEquals(AccountManager.MASTER, creditCard2.getCardType());

      

  2.   

    [color=#FF0000]不好意思,我想请问一下,如果这样写了,那么expectedReturn 和actualReturn 该怎样写呢?
    像下面的这样,在testGetCardType() 函数中如何写expectedReturn 和actualReturn ?[/color]boolean expectedReturn = true; 
    boolean actualReturn = creditCard.isValid();