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); } }
之后,我们创建一个junit测试代码MoneyTest.java,来测试Money.java和MoneyBag.java类,这里我也把它放在src目录下;如果企业应用,你就要把
目录分析的详细些,例如src子目录下放所有的java源代码,test子目录下放所有的junit测试代码: import junit.framework.*;
public class MoneyTest extends TestCase { private Money f12CHF; private Money f14CHF; private Money f7USD; private Money f21USD; private IMoney fMB1; private IMoney fMB2;
public static void main(String args[]) { junit.textui.TestRunner.run(MoneyTest.class); }
protected void setUp() { f12CHF= new Money(12, \f14CHF= new Money(14, \f7USD= new Money( 7, \f21USD= new Money(21, \fMB1= MoneyBag.create(f12CHF, f7USD); fMB2= MoneyBag.create(f14CHF, f21USD); }
public void testBagMultiply() {
// {[12 CHF][7 USD]} *2 == {[24 CHF][14 USD]}
IMoney expected= MoneyBag.create(new Money(24, \new Money(14, \
assertEquals(expected, fMB1.multiply(2)); assertEquals(fMB1, fMB1.multiply(1)); assertTrue(fMB1.multiply(0).isZero()); }
public void testBagNegate() {
// {[12 CHF][7 USD]} negate == {[-12 CHF][-7 USD]}
IMoney expected= MoneyBag.create(new Money(-12, \new Money(-7, \
assertEquals(expected, fMB1.negate()); }
public void testBagSimpleAdd() {
// {[12 CHF][7 USD]} + [14 CHF] == {[26 CHF][7 USD]}
IMoney expected= MoneyBag.create(new Money(26, \\
assertEquals(expected, fMB1.add(f14CHF)); }
public void testBagSubtract() {
// {[12 CHF][7 USD]} - {[14 CHF][21 USD] == {[-2 CHF][-14 USD]} IMoney expected= MoneyBag.create(new Money(-2, \new Money(-14, \
assertEquals(expected, fMB1.subtract(fMB2)); }
public void testBagSumAdd() {
// {[12 CHF][7 USD]} + {[14 CHF][21 USD]} == {[26 CHF][28 USD]} IMoney expected= MoneyBag.create(new Money(26, \new Money(28, \
assertEquals(expected, fMB1.add(fMB2)); }
public void testIsZero() {
assertTrue(fMB1.subtract(fMB1).isZero());
assertTrue(MoneyBag.create(new Money (0, \\}
public void testMixedSimpleAdd() { // [12 CHF] + [7 USD] == {[12 CHF][7 USD]} IMoney expected= MoneyBag.create(f12CHF, f7USD); assertEquals(expected, f12CHF.add(f7USD)); }
public void testBagNotEquals() {
IMoney bag= MoneyBag.create(f12CHF, f7USD);
assertFalse(bag.equals(new Money(12, \}
public void testMoneyBagEquals() { assertTrue(!fMB1.equals(null)); assertEquals(fMB1, fMB1);
IMoney equal= MoneyBag.create(new Money(12, \\
assertTrue(fMB1.equals(equal));
assertTrue(!fMB1.equals(f12CHF)); assertTrue(!f12CHF.equals(fMB1)); assertTrue(!fMB1.equals(fMB2)); }
public void testMoneyBagHash() {
IMoney equal= MoneyBag.create(new Money(12, \\
assertEquals(fMB1.hashCode(), equal.hashCode()); }
public void testMoneyEquals() { assertTrue(!f12CHF.equals(null)); Money equalMoney= new Money(12, \assertEquals(f12CHF, f12CHF); assertEquals(f12CHF, equalMoney);
assertEquals(f12CHF.hashCode(), equalMoney.hashCode()); assertTrue(!f12CHF.equals(f14CHF)); }
public void testMoneyHash() { assertTrue(!f12CHF.equals(null)); Money equal= new Money(12, \
assertEquals(f12CHF.hashCode(), equal.hashCode()); }
public void testSimplify() {
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库java单元测试篇:使用clover为java代码的junit测试做覆盖率分析(2)在线全文阅读。
相关推荐: