だから、どこから始めたらいいのかわからない。この大失敗は8時間以上前に始まり、ジェリーは次々と問題から抜け出しました。さて、これ: そして、「クリックして違いを確認」をクリックすると、さらに良くなります。
私が持っています:
-キャッシュを無効にし、IntelliJを再起動しました
-Double[] numSet = {23.0};
で実行してから、期待される結果を"[23.0]"
ではなくnumSet
に設定しようとしました。サイコロはありません。
-デルタの追加に関する回答が機能しませんでした: 期待される結果が正しい場合でもJUnitテストは失敗します
また、メインクラスからメソッドを呼び出したときに、48行目で発生していると思われるエラーが表示されないことも注目に値するので、それが何であるかはわかりません。
どんな助けでもありがたいです。
テストするメソッドのコードは次のとおりです。ほとんどそれを忘れました:
public List<Object> trimNumberSet(Double[] numSet) {
List<Object> trimmedNumberSet = new ArrayList<>();
for (int i = 0; i < numSet.length; i++) {
if (numSet[i] != null) {
trimmedNumberSet.add(numSet[i]);
}
}
return trimmedNumberSet;
}
ZouZouが言ったように、あなたは異なるデータ型を比較しています。 numSetはDoubleの配列ですが、trimNumberSetの結果はDoubleのリストです。
さらに、注:リストのDouble値を文字列と比較する場合は、数値フォーマッターも使用して、スケールが期待どおりであることを確認することを強くお勧めします(たとえば、「23.000001」ではなく「23.0」)。 )。 Double値の内部表現は、多くの場合、取得したものが以前に入力したものと正確に一致しないという影響を引き起こします。
あなたの問題はデータ型に出くわしたと思います。データが「同じ」である場合でも、テストが文字列と整数(または使用されている数値の実装が何であれ)を比較している可能性があります。このエラーは他の状況で発生します...
左側をsetSorter.trimNumberSet
が取得するのと同じデータ型に変換するか、setSorter.trimNumberSet
の戻りオブジェクトをassertEqualsの文字列に変換してみてください。
お役に立てば幸いです。