【发布时间】:2014-01-03 03:43:22
【问题描述】:
我是 Java 新手,我正在关注通过示例进行测试驱动开发。在第 8 章中,我们将 franc 和 dollar 严格划分为 Money。我已经像这样为法郎和美元创建了工厂方法,但是当我尝试运行测试时,我得到“无法解析符号美元”(或法郎)的测试行:
Money five= new Money.dollar(5);
Money four= new Money.franc(5);
我已经从头开始了两次,并尝试用谷歌搜索它,但我不确定我错过了什么。
金钱类:
public abstract class Money {
abstract Money times(int multiplier);
protected int amount;
static Money dollar(int amount){
return new Dollar(amount);
}
static Money franc(int amount){
return new Franc(amount);
}
public boolean equals(Object object){
Money money = (Money) object;
return amount == money.amount
&& getClass().equals(money.getClass());
}
}
法郎(美元也一样):
public class Franc extends Money {
Franc(int amount){
this.amount = amount;
}
Money times(int multiplier){
return new Franc(amount * multiplier);
}
}
测试:
import org.junit.Test;
import static org.junit.Assert.*;
public class MoneyTest {
@org.junit.Test
public void testMultplication(){
Money five= new Money.dollar(5);
assertEquals(new Dollar(10), five.times(2));
assertEquals(new Dollar(15), five.times(3));
Money four= new Money.franc(5);
assertEquals(new Franc(10), four.times(2));
assertEquals(new Franc(15), four.times(3));
}
}
【问题讨论】:
标签: java