我正在學習如何編寫代碼,並遇到了我的類方法和測試這些方法的麻煩。這裏是問題:類方法的問題和測試這些方法?
在這個實驗中,我們將創建一個Fraction
類。這個類用來表示兩個整數的比例。 FractionDriver
類的主要方法將包含測試您的Fraction類的代碼。我建議你增量測試你的Fraction
類。
您的Fraction
類應該有兩個私有整數實例變量分子和分母。最初,分子的值應該是0,分母的值應該是1.
寫出兩個增變器方法,setNumerator()
和setDenominator()
,允許用戶將分子和分母設置爲整數值。您的代碼不應允許分母設置爲0.如果用戶嘗試將分母設置爲0,則不應更改該值。
另外,還包含一個名爲getValue()
的方法,該方法返回分子除以分母的值作爲雙精度值。
添加一個toString()
方法,該方法返回分子/分母(例如5/3)形式的分數的String
表示形式。
最後,添加一個equals方法,該方法確定兩個Fraction類型的對象是否相等。請注意,3/5和6/10應視爲相等。
這是我爲我的分數類代碼:
public class Fraction {
private int numerator = 0;
private int denominator = 1;
private double divide;
//setting numerator and denominator
public void setNumerator(int numerator) {
this.numerator = numerator;
}
public void setDenominator(int denominator) {
if (denominator == 0) {
return;
}
this.denominator = denominator;
}
//returning value of the numerator divided by a denominator as a double
public void getValue() {
divide = numerator/denominator;
this.divide = divide;
System.out.println("The value of this fraction in decimal form is: " + divide);
}
//returning the fraction as a string #/#
public String toString() {
return "Your fraction is: " + numerator + "/" + denominator;
}
public boolean equals(Fraction other) {
if(other.divide == divide) {
return true;
}
return false;
}
}
這裏是我的司機到目前爲止的代碼:
public class FractionDriver {
public static void main(String[] args) {
Fraction fract1 = new Fraction();
Fraction fract2 = new Fraction();
//initialize variables
fract1.setNumerator(1);
fract1.setDenominator(2);
fract2.setNumerator(5);
fract2.setDenominator(10);
for(int i = 0; i < 1; i++) {
//testing toString method
System.out.println(fract1.toString());
System.out.println(fract2.toString());
fract1.getValue();
fract2.getValue();
}
}
}
當我測試我的getValue()
兩個分數的方法,每個都有0.0的結果,我不知道什麼我在我的班級方法中做錯了。 另外,如何測試我的等號方法?
提示:你將整數。什麼是整數的1/2? – crumbug
薩曼莎,我只想說測試你的代碼的好工作。測試是非常重要的,保持良好的工作。確保你測試所謂的「邊緣情況」以及負值,零等。另外,考慮創建可以保持和反覆運行的測試。如果你雄心勃勃,你可以看一下[Junit](http://junit.org),但是如果對你來說太高級了,也許只是爲每個測試創建一個方法,並且每個方法都會拋出一些異常測試失敗。然後你只需運行你所有的方法。 –