Es stellt sich heraus, dass JUnit @BeforeClass
und @AfterClass
statisch sein möchte und dies nicht gut mit JerseyTest configure
Methode Override. Gibt es eine bekannte Möglichkeit, die Jersey-Anwendung zu konfigurieren und dennoch auf die Dienstprogrammmethoden von JUnit zuzugreifen?Wie @BeforeClass und @AfterClass innerhalb einer JerseyTest-Suite verwenden
public class MyControllerTest extends JerseyTest {
@BeforeClass
public static void setup() throws Exception {
target("myRoute").request().post(Entity.json("{}"));
}
@Override
protected Application configure() {
return new AppConfiguration();
}
}
Daher beforeClass
muss statisch sein, target
kann nicht wegen seiner instanz Verfahren Natur bezeichnet werden. Beim Versuch, stattdessen den Konstruktor zu verwenden, stellt sich heraus, dass configure
nach dem constructor
ausgeführt wird, und dies verhindert, dass die Setup-Anforderung ausgeführt wird und wird daher natürlich fehlschlagen.
Jeder Ratschlag ist mehr als willkommen, danke!
Nun, warum sollten Sie die 'setup()' Methode statisch sein? Kannst du es nicht einfach zum Mitglied machen und '@ Before' stattdessen benutzen? – hfhc2
Didi probierst du '@ Before' anstatt' @ BeforeClass'? – Dimitri
es ist eine schwere und möglicherweise zeitraubende Operation, die ich nicht bei jedem einzelnen Test ausführen möchte. @Dimitri – Ivo