Я отвечаю на это из встроенного C-фона, но мне кажется, что ваши вопросы довольно общие в отношении насмешек, и ответы должны применяться.
Можно ли использовать фиктивные объекты для имитации поведения последовательного порта? его вход
буфер
Да, вот довольно хороший пример поддельного UART:
http://throwtheswitch.org/white-papers/when-bad-code-runs-green.html
Можно ли использовать фиктивный объект для изменения поведения последовательного порта (т. Е. Чтобы сделать вид, что порт> заблокирован).
Это именно то, что насмешка. Пока ваш код разделен на слои, то есть что-то вроде
- Уровень аппаратного драйвера
- Контрольный слой
- API уровень для внешних модулей
Затем можно смоделировать любой слой, необходимый для имитации действительной операции: полный буфер, сбой оборудования и т. Д.
Можно ли использовать макеты для более базовых классов (например, я хочу протестировать часть моего кода>, которая выделяет массив. Могу ли я получить макет, чтобы сделать вид, что выделение памяти не удалось из-за недостатка памяти)
Да, это похоже на предыдущий вопрос в том, что если ваш код уже содержит какой-то код выделения памяти, вы можете высмеивать то, что возвращает оболочка. Может быть, у вас есть класс типа менеджера памяти, который
Подходит ли Rhino Mocks для насмешки над приложением C ++ / CLI?
Не уверен насчет этого
Какие-нибудь другие фальшивые фреймворки (желательно бесплатные, но открытые для платных), которые по вашему опыту хороши для этой задачи?
Приведенный выше пример взят из unity + CMock + Ceedling (в основном, это среда тестирования C). Он с открытым исходным кодом и отлично работает для приложений на встроенном Си. Не уверен в поддержке C ++.
Совместимы ли они с MS Test?
Извините, но и этого не знаю