Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать jUnit-тест для Sockets-соединения??? 
:(
    Опции темы
Killer_13
Дата 26.4.2012, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Собственно вопрос понятен из темы.
Есть клиент и сервер - нужно протестировать с помощью jUnit Socket-соединение, ну или если у кого есть другие примеры то все-равно с помощью чего, главное понять принцип как это сделать.

В инете нашел материал, но что-то под свой пример заточить не смог.

Спасибо за подсказки.

Client
Код

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {

    public static void main(String[] args) throws UnknownHostException,
            IOException {
        new Client();
    }

    private Socket clientSocket;
    private InputStream inputStream;
    private OutputStream outputStream;

    private DataInputStream dataInputStream;
    private DataOutputStream dataOutputStream;

    private final String hostName = "localhost";
    private final int PORT = 6700;

    private BufferedReader bufReader;
    private String requestMessage = null;
    private String responseMessage = null;

    public Client() {
        System.out.println("-CLIENT-");

        try {
            this.clientSocket = new Socket(this.hostName, this.PORT);
            this.bufReader = new BufferedReader(
                    new InputStreamReader(System.in));

            this.inputStream = clientSocket.getInputStream();
            this.outputStream = clientSocket.getOutputStream();

            this.dataInputStream = new DataInputStream(inputStream);
            this.dataOutputStream = new DataOutputStream(outputStream);

            do {
                this.requestMessage = bufReader.readLine();
                sendMessage(this.requestMessage);
                this.responseMessage = dataInputStream.readUTF();
                System.out.println(this.responseMessage);
            } while ((!(this.requestMessage.compareTo("quit") == 0)));
            System.out.println("ClientStopped!");

        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                this.inputStream.close();
                this.outputStream.close();
                this.clientSocket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    private void sendMessage(String msg) {
        try {

            this.dataOutputStream.writeUTF(msg);
            this.dataOutputStream.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}



Server
Код
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

    public static void main(String[] args) throws IOException {
        new Server();
    }

    private ServerSocket serverSocket;
    private Socket connectionSocket;

    private InputStream inputStream;
    private OutputStream outputStream;

    private DataInputStream dataInputStream;
    private DataOutputStream dataOutputStream;

    private final int PORT = 6700;
    private int parkPlatzCounter = 5;

    private String responseMessage = null;

    public Server() {
        System.out.println("-SERVER-");

        try {
            this.serverSocket = new ServerSocket(this.PORT);
            this.connectionSocket = serverSocket.accept();

            this.inputStream = connectionSocket.getInputStream();
            this.outputStream = connectionSocket.getOutputStream();

            this.dataInputStream = new DataInputStream(inputStream);
            this.dataOutputStream = new DataOutputStream(outputStream);

            do {
                this.responseMessage = this.dataInputStream.readUTF();
                if (this.responseMessage.compareTo("quit") == 0) {
                    sendMessage("Server Stopped!");
                } else if (this.responseMessage.compareTo("in") == 0) {
                    autoEin();
                } else if (this.responseMessage.compareTo("out") == 0) {
                    autoAus();
                } else if (this.responseMessage.compareTo("free") == 0) {
                    free();
                } else {
                    sendMessage("---Falsche Eingabe!---");
                }

            } while ((!(this.responseMessage.compareTo("quit") == 0)));
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                this.inputStream.close();
                this.outputStream.close();
                this.serverSocket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    private void free() {
        sendMessage("> " + this.parkPlatzCounter);
    }

    private void autoEin() {
        if (this.parkPlatzCounter > 0) {
            this.parkPlatzCounter--;
            sendMessage("> ok");
        } else {
            sendMessage("> fail");
        }
    }

    private void autoAus() {
        if (this.parkPlatzCounter < 5) {
            this.parkPlatzCounter++;
            sendMessage("> ok");
        } else {
            sendMessage("> fail");
        }
    }

    private void sendMessage(String msg) {
        try {

            this.dataOutputStream.writeUTF(msg);
            this.dataOutputStream.flush();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

PM MAIL   Вверх
Stolzen
Дата 27.4.2012, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 2
Всего: 48



Для начала попробуйте протестировать с помощью моков - например, с помощью библиотеки mockito.


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Killer_13
Дата 27.4.2012, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 12.1.2008
Где: Germany

Репутация: нет
Всего: 1



Цитата

Для начала попробуйте протестировать с помощью моков - например, с помощью библиотеки mockito. 
 - мне наверное проще будет попробовать переделать, так как тест нужно написать на jUnit.
Спасибо.
PM MAIL   Вверх
lamao
Дата 7.5.2012, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 23.4.2008

Репутация: нет
Всего: нет



Цитата(Killer_13 @ 27.4.2012,  12:04)
Цитата

Для начала попробуйте протестировать с помощью моков - например, с помощью библиотеки mockito. 
 - мне наверное проще будет попробовать переделать, так как тест нужно написать на jUnit.
Спасибо.

Не знаю, актуально ли еще, но mockito и junit как бы дополняют один другуго. Мокито как раз используется для варинтов, когда нужно абстрагироваться от всех ненужных/неважных для данного теста вещей. То есть в общем случае говорим, что вот если мы вызовем этот метод с такими параметрами, то получим вот это. И не нужно рельных соединений поднимать.

Mockito
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Design, Quality, Testing | Следующая тема »


 




[ Время генерации скрипта: 0.1061 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.