2015-02-04 2 views
0

Некоторые контексты: В настоящее время я работаю над проектом домашней автоматизации, который включает в себя контроллеры arduino, с которыми мне нужно подключиться через TCP/IP. Ардуино работает как сервер.mocking remote tcp server

Мой вопрос: Как я могу издеваться над этим ардуиновым соединением для тестирования морских свиней? Не удалось найти подходящий ресурс для изучения. Извините, если мой вопрос дублируется, но я не нашел здесь никакого ответа, который бы соответствовал моим потребностям.

Любая помощь будет оценена!

ответ

0

Я бы посоветовал вам не пытаться и издеваться над таким низким уровнем.

Создайте полноценный интерфейс, который инкапсулирует операции, которые вы можете выполнить против сервера arduino. Ваш код должен зависеть от этого, и этот интерфейс может издеваться над вашими модульными тестами.

Вам понадобится конкретный класс, который реализует интерфейс и взаимодействует с сервером. Не пытайтесь и проверяйте его - напишите для него интеграционный тест, который попадает на настоящий сервер.

+0

У меня есть 2 операции для тестирования, отправка команд в arduino и получение ответа от него - согласно реакции сервера arduino будет выполнена дальнейшая логика. У меня есть конкретный класс, который реализует эти вещи, как я могу их проверить? BTW, каждое соединение с конкретным arduino является потоком, работает как поток ввода и вывода, который я никогда не закрываю во время работы системы. –

0

Я не уверен, как именно ваша конструкция системы или то, что вы хотите, чтобы дразнить, но я вижу три способа, как вы можете проверить:

  • соединение с netcat to the server. Netcat позволяет тестировать текстовые протоколы, отправляя запрос на сервер и проверяя ответ вручную.

  • Открыть соединение с клиентской розеткой на вашем любимом языке. Вы должны найти много информации о том, как это сделать на SO.

  • Используйте scapy to build a TCP handshake, если вы хотите протестировать определенные части TCP. Основы TCP можно найти в rfc793.

Если я не ответил на ваш вопрос, просьба представить более подробную информацию о том, что вы хотите сделать, как ваша общая архитектура системы и какой язык программирования вы хотите использовать.

+0

Я работаю с Java, я создал клиент для подключения к моим arduinos через TCP/IP. Мне нужен сервер для ответа на команду, которую я отправляю, используя строки. какие-либо предложения ? –