您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > junit
使用clover为junit单元测试做覆盖率分析
作者:网络转载 发布时间:[ 2013/10/15 10:40:03 ] 推荐标签:

    这个接口实现了IMoney接口的方法,具体语法不讲了,很简单!之后,我们又用另一个类实现IMoney接口,为什么呢?你可以认为我贪心,但你不可以这么说,因为喜欢编程的人不是为了贪婪代码!我们在src下建立另一个类MoneyBag.java:

    import java.util.*; 
     
    class MoneyBag implements IMoney { 
     
    private Vector fMonies= new Vector(5); 
     
     
    static IMoney create(IMoney m1, IMoney m2) { 
     
    MoneyBag result= new MoneyBag(); 
     
    m1.appendTo(result); 
     
    m2.appendTo(result); 
     
    return result.simplify(); 
     
    } 
     
    public IMoney add(IMoney m) { 
     
    return m.addMoneyBag(this); 
     
    } 
     
    public IMoney addMoney(Money m) { 
     
    return MoneyBag.create(m, this); 
     
    } 
     
    public IMoney addMoneyBag(MoneyBag s) { 
     
    return MoneyBag.create(s, this); 
     
    } 
     
    void appendBag(MoneyBag aBag) { 
     
    for (Enumeration e= aBag.fMonies.elements(); e.hasMoreElements(); ) 
     
    appendMoney((Money)e.nextElement()); 
     
    } 
     
    void appendMoney(Money aMoney) { 
     
    if (aMoney.isZero()) return; 
     
    IMoney old= findMoney(aMoney.currency()); 
     
    if (old == null) { 
     
    fMonies.addElement(aMoney); 
     
    return; 
     
    } 
     
    fMonies.removeElement(old); 
     
    IMoney sum= old.add(aMoney); 
     
    if (sum.isZero()) 
     
    return; 
     
    fMonies.addElement(sum); 
     
    } 
     
    public boolean equals(Object anObject) { 
     
    if (isZero()) 
     
    if (anObject instanceof IMoney) 
     
    return ((IMoney)anObject).isZero(); 
     
     
    if (anObject instanceof MoneyBag) { 
     
    MoneyBag aMoneyBag= (MoneyBag)anObject; 
     
    if (aMoneyBag.fMonies.size() != fMonies.size()) 
     
    return false; 
     
     
    for (Enumeration e= fMonies.elements(); e.hasMoreElements(); ) { 
     
    Money m= (Money) e.nextElement(); 
     
    if (!aMoneyBag.contains(m)) 
     
    return false; 
     
    } 
     
    return true; 
     
    } 
     
    return false; 
     
    } 
     
    private Money findMoney(String currency) { 
     
    for (Enumeration e= fMonies.elements(); e.hasMoreElements(); ) { 
     
    Money m= (Money) e.nextElement(); 
     
    if (m.currency().equals(currency)) 
     
    return m; 
     
    } 
     
    return null; 
     
    } 
     
    private boolean contains(Money m) { 
     
    Money found= findMoney(m.currency()); 
     
    if (found == null) return false; 
     
    return found.amount() == m.amount(); 
     
    } 
     
    public int hashCode() { 
     
    int hash= 0; 
     
    for (Enumeration e= fMonies.elements(); e.hasMoreElements(); ) { 
     
    Object m= e.nextElement(); 
     
    hash^= m.hashCode(); 
     
    } 
     
    return hash; 
     
    } 
     
    public boolean isZero() { 
     
    return fMonies.size() == 0; 
     
    } 
     
    public IMoney multiply(int factor) { 
     
    MoneyBag result= new MoneyBag(); 
     
    if (factor != 0) { 
     
    for (Enumeration e= fMonies.elements(); e.hasMoreElements(); ) { 
     
    Money m= (Money) e.nextElement(); 
     
    result.appendMoney((Money)m.multiply(factor)); 
     
    } 
     
    } 
     
    return result; 
     
    } 
     
    public IMoney negate() { 
     
    MoneyBag result= new MoneyBag(); 
     
    for (Enumeration e= fMonies.elements(); e.hasMoreElements(); ) { 
     
    Money m= (Money) e.nextElement(); 
     
    result.appendMoney((Money)m.negate()); 
     
    } 
     
    return result; 
     
    } 
     
    private IMoney simplify() { 
     
    if (fMonies.size() == 1) 
     
    return (IMoney)fMonies.elements().nextElement(); 
     
    return this; 
     
    } 
     
    public IMoney subtract(IMoney m) { 
     
    return add(m.negate()); 
     
    } 
     
    public String toString() { 
     
    StringBuffer buffer = new StringBuffer(); 
     
    buffer.append("{"); 
     
    for (Enumeration e= fMonies.elements(); e.hasMoreElements(); ) 
     
    buffer.append(e.nextElement()); 
     
    buffer.append("}"); 
     
    return buffer.toString(); 
     
    } 
     
    public void appendTo(MoneyBag m) { 
     
    m.appendBag(this); 
     
    } 
     
    } 

上一页12345678下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd