Я должен написать много кода, который имеет дело с последовательными портами. Обычно на другом конце провода подключается устройство, и я обычно создаю свои собственные макеты, чтобы имитировать их поведение.
Я начинаю смотреть на Moq, чтобы помочь с моими модульными тестами. Его довольно просто использовать, когда вам нужна просто заглушка, но я хочу знать, возможно ли это, и если да, как мне создать макет для аппаратного устройства, которое реагирует по-разному в зависимости от того, что я хочу проверить.
Простой пример:
Одно из устройств, с которыми я взаимодействую, получает команду (переместиться в положение x), возвращает сообщение ACK и переходит в состояние «движения», пока не достигнет упорядоченного положения.
Я хочу создать тест, в котором я отправляю команду перемещения, а затем продолжаю запрашивать состояние, пока оно не достигнет конечной позиции.
Я хочу создать две версии макета для двух разных тестов: одну, в которой я ожидаю, что устройство успешно достигнет конечной позиции, а другую - в случае отказа.
Слишком много, чтобы спросить?