JUnit - assertEquals

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?

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;
	}
	

} 
 
	@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);
	}
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.

0

Dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1