Ich arbeite an einem Test-Framework, das Serenity, Selenium und jUnit verwendet. Ich habe einige Tests, die von der Benutzerauthentifizierung abhängen. Grundsätzlich muss ich alle Login-Schritte für jeden Test wiederholen. Ich wollte diese Schritte in eine @Before-Methode verschieben, aber es scheint, dass Schritte nicht in einer Methode initialisiert werden, die nicht als @Test annotiert ist. Siehe Code-Snippet unten, AuthSteps-Instanz wird nicht initialisiert.Serenity BDD mit jUnit wie Schritte in Setup-Methode injizieren?
Welche sind meine Optionen?
@RunWith(SerenityRunner.class)
public class MyTests extends AbstractTest {
@Managed(driver = "firefox", uniqueSession = false)
@Steps
AuthSteps auth;
@Before
public void authSetup() {
if (!authenticated){
auth.login();
//a lot of other things
}
}
@Test
public void mytest(){
//do test related stuff
}
Ja, es scheint, das Problem war komplett anderswo, ich schaffte es, die @Managed Annotation an der falschen Stelle zu platzieren ... Peinlich. – vicusbass
Korrekt, für die mit ähnlichen Problemen sollte es so etwas wie sein: '@Managed (driver =" firefox ", uniqueSession = false) statische WebDriver-Treiber;' – JDelorean