Frage zu JUnit Tests

vanBraQ

Mitglied
Hi Leute 😉

Habe als Aufgabe bekommen meine Domainmodel zu testen. Hierfür habe ich zwei Testklassen geschrieben welche den Konstruktor testen:

Java:
package domain;

import java.util.Arrays;
import java.util.Collection;
import java.util.Date;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;

@RunWith(value = Parameterized.class)
public class AusbildungConstructorTest {

	private String bezeichnung;
	private String kurz_bezeichnung;
	private Feuerwehr ort;
	private Date datum;
	
	public AusbildungConstructorTest(String bez, String kbez, Feuerwehr ort,
			Date datum){
		this.bezeichnung = bez;
		this.kurz_bezeichnung = kbez;
		this.ort = ort;
		this.datum = datum;
	}
	
	@Parameterized.Parameters
    public static Collection<Object[]> data() {
        Object[][] data = new Object[][]{ //
                {null, null, null, null}, //
                {"Testbez", null, null, null}, //
                {null, "Testkbez", null, null}, //
                {null, null, new Feuerwehr(), null},
                {null, null, null, new Date()},
                {"Testbez", "Testkbez", null, null}};
        return Arrays.asList(data);
    }
    
    @Test(expected = IllegalArgumentException.class)
    public void whenCreatingWithNullArguments() {
        new Ausbildung(bezeichnung, kurz_bezeichnung, ort, datum);
    }
}

Java:
package domain;

import java.util.Arrays;
import java.util.Collection;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;

@RunWith(value = Parameterized.class)
public class BerechtigungConstructorTest {

	private String berechtigung;
	
	public BerechtigungConstructorTest(String berechtigung){
		this.berechtigung = berechtigung;
	}
	
	@Parameterized.Parameters
    public static Collection<Object[]> data() {
        Object[][] data = new Object[][]{ //
                {null}, //
                {"test"}};
        return Arrays.asList(data);
    }
    
    @Test(expected = IllegalArgumentException.class)
    public void whenCreatingWithNullArguments() {
        new Berechtigung(berechtigung);
    }
}

leider bekomme ich beidemale keine erwartetes Ergebniss 🙁

bei meinem ersten Test bekomme ich die Meldung "Method initializationError not found".
und bei meinem 2. Test bekomm ich keinen Error sondern Failures.


woran liegt das🙁
 
Solange wir nicht die Implementierung der Klassen Ausbildung, Feuerwehr und Berechtigung kennen, wird das Rätsel niemand lösen können...
 
Java:
package domain;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import help.EnsureService;

@Entity
@Table(name = "ausbildung")
public class Ausbildung extends BasePersistable {

	private static final long serialVersionUID = 4601413807692718572L;
	
	@Size(max = 30)
	@NotNull
	@Column(name = "bezeichnung", nullable = false, length = 30)
	private String bezeichnung;
	
	@Size(max = 3)
	@NotNull
	@Column(name = "kurzbezeichnung", nullable = false, length = 3)
	private String kurz_bezeichnung;
	
	@Column(name = "ort", nullable = false)
	private Feuerwehr ort;
	
	@Temporal(TemporalType.DATE)
	@NotNull
	@Column(name = "datum", nullable = false)
	private Date datum;

	public Ausbildung(String bezeichnung, String kurz_bezeichnung,
			Feuerwehr ort, Date datum) {
		super();
		EnsureService.notEmpty("bezeichnung", bezeichnung);
		this.bezeichnung = bezeichnung;
		this.kurz_bezeichnung = kurz_bezeichnung;
		this.ort = ort;
		this.datum = datum;
	}

	public Ausbildung() {
		// required for JPA
	}

	public String getBezeichnung() {
		return bezeichnung;
	}

	public void setBezeichnung(String bezeichnung) {
		this.bezeichnung = bezeichnung;
	}

	public String getKurz_bezeichnung() {
		return kurz_bezeichnung;
	}

	public void setKurz_bezeichnung(String kurz_bezeichnung) {
		this.kurz_bezeichnung = kurz_bezeichnung;
	}

	public Feuerwehr getOrt() {
		return ort;
	}

	public void setOrt(Feuerwehr ort) {
		this.ort = ort;
	}

	public Date getDatum() {
		return datum;
	}

	public void setDatum(Date datum) {
		this.datum = datum;
	}

}
Java:
package domain;

import javax.persistence.Entity;
import javax.persistence.Table;
import help.EnsureService;

@Entity
@Table(name = "berechtigung")
public class Berechtigung extends BasePersistable {

	private static final long serialVersionUID = 5707680569424613530L;
	private String berechtigung;
	
	public Berechtigung(String berechtigung) {
		super();
		EnsureService.notEmpty("berechtigung", berechtigung);
		this.berechtigung = berechtigung;
	}
	
	public Berechtigung() {
		super();
		this.berechtigung = "Testberechtigung";
	}

	public String getBerechtigung() {
		return berechtigung;
	}

	public void setBerechtigung(String berechtigung) {
		this.berechtigung = berechtigung;
	}
}
Java:
package domain;

import java.util.ArrayList;
import javax.persistence.Entity;
import javax.persistence.Table;

@Entity
@Table(name = "feuerwehr")
public class Feuerwehr extends BasePersistable {

	private static final long serialVersionUID = 4011028919765324284L;
	private String Ort;
	private ArrayList<Mitglied> mitglieder;
	private ArrayList<Charge> chargen;
	private Kommandant kommandant;
	private ArrayList<Feuerwehrauto> autos;

	public Feuerwehr() {
		this.Ort = "Musterort";
		this.mitglieder = new ArrayList<Mitglied>();
		this.chargen = new ArrayList<Charge>();
		this.kommandant = new Kommandant();
		this.autos = new ArrayList<Feuerwehrauto>();
	}

	public Feuerwehr(String ort, ArrayList<Mitglied> mitglieder,
			ArrayList<Charge> chargen, Kommandant kommandant,
			ArrayList<Feuerwehrauto> autos) {
		super();
		Ort = ort;
		this.mitglieder = mitglieder;
		this.chargen = chargen;
		this.kommandant = kommandant;
		this.autos = autos;
	}

	public String getOrt() {
		return Ort;
	}

	public void setOrt(String ort) {
		Ort = ort;
	}

	public ArrayList<Mitglied> getMitglieder() {
		return mitglieder;
	}

	public void setMitglieder(ArrayList<Mitglied> mitglieder) {
		this.mitglieder = mitglieder;
	}

	public ArrayList<Charge> getChargen() {
		return chargen;
	}

	public void setChargen(ArrayList<Charge> chargen) {
		this.chargen = chargen;
	}

	public Kommandant getKommandant() {
		return kommandant;
	}

	public void setKommandant(Kommandant kommandant) {
		this.kommandant = kommandant;
	}

	public ArrayList<Feuerwehrauto> getAutos() {
		return autos;
	}

	public void setAutos(ArrayList<Feuerwehrauto> autos) {
		this.autos = autos;
	}
}
 
wie führst du die Tests aus? Wenn ich auf das File einen Run Test mache, bekomme ich AssertionErrors dass eine Exception erwartet wird, ist aber auch klar, da ich nirgends eine Exception werfe. Vermutlich ist das in diesem EnsureService, den ich nicht habe...
 

Zurück
Oben