Java Junit test HTTP POST-запрос

Мне нужно протестировать следующий метод, не изменяя сам метод. Метод выполняет метод POST на сервер. Но мне нужно сделать тестовый пример, независимый от сервера.

Я протестировал аналогичный метод, прежде чем перенаправить его в локальный файл. Но для этого я указал протокол как файл, имя хоста как локальный хост и порт как -1.

Моя проблема в том, что этот метод делает сообщение и приводит к HttpURLConnection и wr = new DataOutputStream(conn.getOutputStream()); не будет работать с локальным текстовым файлом через http.

//конструктор

public HTTPConnector(String usr, String pwd, String protocol,
            String hostname, int port) {
        this.usr = usr;
        this.pwd = pwd;
        this.protocol = protocol;
        this.hostname = hostname;
        this.port = port;

        // connect();
    }

//метод, который мне нужно протестировать

public String doPost(String reference, String data) throws IOException {
        URL url = null;
        HttpURLConnection conn = null;
        BufferedReader rd = null;
        DataOutputStream wr = null;
        InputStream is = null;
        String line = null;
        StringBuffer response = null;

        url = new URL(protocol, hostname, port, reference);
        conn = (HttpURLConnection) url.openConnection();

        conn.setRequestMethod("POST");

        conn.setRequestProperty("Authorization", "Basic dGVzdDphc2Rm");
        conn.setRequestProperty("Content-Type", "application/xml");

        conn.setUseCaches(false);
        conn.setDoInput(true);
        conn.setDoOutput(true);

        // Send response
        wr = new DataOutputStream(conn.getOutputStream());
        wr.writeBytes(data);
        wr.flush();
        wr.close();

        // Get response
        is = conn.getInputStream();
        rd = new BufferedReader(new InputStreamReader(is));
        response = new StringBuffer();
        while ((line = rd.readLine()) != null) {
            response.append(line);
            response.append('\r');
        }
        rd.close();
        return response.toString();
    }

//метод, который я мог бы протестировать

public String doGet(String reference) throws IOException {
        connect();
        URL url = new URL(protocol, hostname, port, reference);
        InputStream content = (InputStream) url.getContent();

        BufferedReader xml = new BufferedReader(new InputStreamReader(content));
        return xml.readLine();
    }
12
задан Nikolas 18 November 2014 в 15:33
поделиться