Testen mit Mockito

JonnyRico

Mitglied
Hi,

ich beschäftige mich gerade ein bisschen mit dem Testmanagement. Ich habe eine Klasse X

Java:
public class X{

    @EJB
    MyEJB ejb;
    
    private void myMeth() {
       // do nothing
    }
}

Ich möchte jetzt gerne das Attribut ejb mocken, doch leider bin ich mit meinem Test natürlich in einem anderen Package (/src/test/java/...) als die Quellen(/src/main/java/...). Demzufolge habe ich keinen Zugriff auf das Attribut :(
Ich würde erwarten, dass jeder dieses Problem haben sollte, daher gibt es sicher jemand der weiß was man dagegen unternimmt. Die Kapselung in der Businesslogik aufbrechen, kann ja nicht die Lösung sein. Bin für jeden Tipp dankbar. Vielen Dank im Voraus.

Gruß

Jonny
 

kama

Top Contributor
Hi,
Ich möchte jetzt gerne das Attribut ejb mocken, doch leider bin ich mit meinem Test natürlich in einem anderen Package (/src/test/java/...) als die Quellen(/src/main/java/...).
Also basierend auf den Angaben vermute ich mal, dass Du einen Maven Build hast...weiterhin sind die Angaben dort keine Packages sondern wo die Packages liegen...Wenn Du tatsächlich andere Packages haben solltest, dass sind die Einstellungen in der IDE nicht in Ordnung...

Gruß
Karl Heinz Marbaise
 

mvitz

Top Contributor
Ansonsten gibt es die folgenden Möglichkeiten:

1) Man nutzt anstatt Feldinjektion Konstruktorinjektion
2) Man nutzt anstatt Feldinjektion Setterinjektion
3) Man nutzt für die Tests Reflection um das Feld zu setzen (ich hatte dafür auch mal eine ganz schlanke Lib, die das einem sehr einfach gemacht hat, aber im Endeffekt ist das durch eine kleine eigene Utilityklasse auch zu erledigen.

1 geht afaik mit EJBs nicht, blieben dir eben noch gleiches package oder 2 bzw. 3
 

Ähnliche Java Themen

Neue Themen


Oben