したがって、junit テストでいっぱいのクラスと、バイナリ操作を実行するメソッドでいっぱいのクラスがあります。テストは、特定のポイントで正しい値を持っているかどうかを確認しています。
私が信じているのは戻り値の型であるため、多くのテストに失敗しています。たとえば、私はメッセージを受け取ります
junit.framework.ComparisonFailure: null expected:<[000]> but was <[BinaryNumber@4896b555]>
私がこれを理解している場合、000 を含む配列を探していたが、BinaryNumber (必要な戻り値の型) を取得したと言っています。ここで明確にするために、方法の 1 つを示します。
public BinaryADT and(BinaryADT y) {
int[] homeArr = pad(((BinaryNumber) y).getNumber());
int[] awayArr = ((BinaryNumber) y).pad(getNumber());
int[] solution = new int[awayArr.length];
int i = 0;
String empty = "";
while(i < solution.length){
solution[i] = homeArr[i] & awayArr[i];
i++;
}
for(int indexF = 0; indexF < solution.length; indexF++){
empty = empty + solution[indexF];
}
System.out.println(empty);
return new BinaryNumber(empty);
}
私はこれを正しく理解していますか?そうでない場合は、誰かが説明してもらえますか? また、これは私の宿題のためであることを指摘したいと思いますが、私は答え/誰かが私のためにそれをすることを求めているわけではありません. せいぜい正しい方向へのポイントです。
必要に応じて、喜んで詳細を明らかにします (すべてを行き詰まらせたくありませんでした)。
また、これは私の最初の投稿です。私はフォーマットの提案を守ろうとしましたが、標準以下のものがある場合は申し訳ありません.
ここで提案されているように、テスト方法は次のとおりです
public void testAnd1()
{
BinaryADT x = new BinaryNumber("111");
BinaryADT y = new BinaryNumber("000");
BinaryADT z = x.and(y);
assertNotSame(x,z);
assertNotSame(y,z);
assertEquals("000",z.toString());
}