Разработка через тестирование: как сделать время внешним по отношению к кодуC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Разработка через тестирование: как сделать время внешним по отношению к коду

Сообщение Anonymous »

В моей кодовой базе C++ есть класс PassiveBuzzer, который программно эмулирует поведение активного зуммера, управляемого по линии ШИМ. Его можно настроить с помощью шаблонов, с периодом и рабочим циклом, например, с линиями ШИМ. Конструктор берет частоту, на которой он гудит, когда он "включен". Конструктор также принимает объект типа Linux::PWM::Line, который является производным от интерфейса PWM::Line. Таким образом, я могу легко издеваться над этим объектом в модульных тестах.
Чтобы включать и выключать пассивный зуммер, я сейчас использую timerfd (с классом-оболочкой C++).
Однако это не позволяет мне качественно протестировать поведение моего класса, поскольку Timer создается внутри класса PassiveBuzzer и не передается ему.
Я хотел бы это сделать иметь возможность тестировать класс PassiveBuzzer и получать детерминированные результаты (независимые от нагрузки системы и других факторов).
Каковы распространенные способы разрешить детерминированное тестирование классов, которые зависят вовремя, чтобы вызвать поведение? Как я могу выделить время вне класса?

Подробнее здесь: https://stackoverflow.com/questions/784 ... al-to-code
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»