コード作成の方法を学習していますが、クラスメソッドに問題があり、これらのメソッドをテストしています。ここに問題があります:クラスメソッドに問題があり、これらのメソッドをテストしていますか?
このラボでは、Fraction
クラスを作成します。このクラスは、2つの整数の比率を表すために使用されます。 FractionDriver
クラスのmainメソッドには、Fractionクラスをテストするコードが含まれます。 Fraction
クラスを段階的にテストすることをお勧めします。
Fraction
クラスには、2つのプライベート整数インスタンス変数、numeratorとdenominatorが必要です。最初にnumeratorの値は0で、分母の値は1でなければなりません。
2つのミューテータメソッドsetNumerator()
とsetDenominator()
を書きます。これにより、分子と分母を整数値に設定できます。コードで分母を0に設定しないでください。ユーザーが分母を0に設定しようとすると、値を変更しないでください。
また、分子の値を分母で割った値をdoubleとして返すメソッドgetValue()
を含めます。
String
の式を分子/分母の形式で返します(例:5/3)。
最後に、Fraction型の2つのオブジェクトが等しいかどうかを判断するequalsメソッドを追加します。 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の結果を持っています。私はクラスメソッドで間違っています。 また、equalsメソッドをテストするにはどうすればよいですか?
ヒントにする
しかし、良いはずです。整数の1/2は何ですか? – crumbug
Samantha、私はあなたのコードをテストする素晴らしい仕事をしたかっただけです。テストは非常に重要です、良い仕事を続けてください。負の値やゼロなどのいわゆる「エッジケース」もテストするようにしてください。何度も繰り返して実行できるテストを作成することを検討してください。もしあなたが野心的なら、あなたは[Junit](http://junit.org)を見ることができるかもしれませんが、それがあまりにも進んでいるならば、おそらく各テストのためのメソッドを作成し、それぞれのメソッドは何らかの例外をスローしますテストは失敗します。次に、すべてのメソッドを実行します。 –