Tourniquet JUnit 0.4.6 released

By Gerald Mücke | July 18, 2016

Tourniquet JUnit 0.4.6 released

Mit dem heutigen Release von Tourniquet JUnit 0.4.6 gibt es vor allem Erweiterungen des HTTP Server Mock als auch der PageObjects Bibliothek.

Mit der neuen Version des Server Mocks ist es nun möglich nicht nur GET sondern auch auf POST requests zu antworten. Es wurden auch die Möglichkeiten erweitert, nur auf spezifische Requests zu antworten und direkt auf Request und Response zuzugreifen, um so dynamische Reaktionen für Test Requests zu formulieren.

    @Rule
    HttpServer http = new HttpServer("localhost", 55555);
    
    @Test
    public void testHttpServerPost() throws Exception {
        server.on(POST).resource("/action.do").execute(x -> {
            try {
                x.getOutputStream().write("someContent".getBytes());
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        });
     
        try (CloseableHttpClient client = HttpClients.createDefault();
             CloseableHttpResponse response = client.execute(post("http://localhost:55555/action.do"))) {
            String content = getString(response.getEntity());
            assertEquals("someContent", content);
        }
    }

Die PageObject Modelierung wird nun durch dynamische Convention-Code Generierung unterstützt, so dass für einfache Operationen, wie ein Click auf einen Link oder das Submitten eines Formulares kein expliziter Selenium WebDriver Code mehr geschrieben werden muss. Ein PageObject für eine einfache Login Seite kann nun so geschrieben werden

    @Locator("login.jsp")
    public abstract class LoginPage implements Page {
         
        @Locator(by = ID, value = "username")
        public abstract LoginPage enterUsername(String username);
         
        @Locator(by = ID, value = "password")
        public abstract LoginPage enterPassword(String password);
         
        @Locator(by = ID, value = "login")
        public abstract void pressLogin();
    }

Der Quellcode von Tourniquet ist frei verfügbar auf GitHub..