JUnit - assertEquals

JUnit - assertEquals
I1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
0

Witam, mam problem z testem w JUnit. Failure Trace piszę, że dostał wektor[0.0,0.0,0.0], a oczekiwał na wektor[0.0,0.0,0.0].
Czy metoda assertEquals dla obiektów działa w ten sposób, że porównuje obszar w pamięci? Jak powinien wyglądać ten test żeby to przeszło?

Kopiuj
import java.util.Arrays;

public class WektorND {
	private double[] skladowe;

	public WektorND() {
		this.skladowe = new double[] {0,0,0};
	}
	public WektorND(double...ds ) {
		this.skladowe = ds;
	}
	public double dajWymiar() {
		
		return skladowe.length;
	}
	public void ustawSkladowa(int i,double wart) {
		skladowe[i] = wart;
	}
	@Override
	public String toString() {
		return "WektorND [skladowe=" + Arrays.toString(skladowe) + "]";
	}
	public double[] getSkladowe() {
		return skladowe;
	}
	public static WektorND dajWektorZerowy(int n) {
		
		double[] wymiar = new double[n];
		for(int i=0;i<n;i++) {
			wymiar[i] = 0.0;
		}
		WektorND wektor = new WektorND(wymiar);
		return wektor;
	}
	

} 
Kopiuj
 
	@Test
	public void test3() {
		WektorND wektor = new WektorND(0.0,0.0,0.0);
		assertEquals(3,wektor.dajWymiar(),1e-10);
		WektorND wektor2 = WektorND.dajWektorZerowy(3);
		assertEquals(wektor,wektor2);
	}
Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Przeładuj dla tej klasy metodę equals() (każde IDE potrafi wygenerować to automatycznie, kliknij source -> generate -> hashCode and equals). Skąd inaczej java ma wiedzieć jak te obiekty porównać? Default to porównanie referencji.

I1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
0

Dzięki!

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.