В официальной версии 3.1 Hippomocks (https://www.assembla.com/spaces/hippomocks/wiki/Home) там раньше было MockRepository::ClassMock
построивший издевались объектов (вопреки MockRepository::InterfaceMock
, не), которая может быть очень полезна при работе с методы не виртуального класса.эквивалент Hippomocks' ранее существовавшие MockRepository :: ClassMock
Текущая версия MockRepository::Mock
делает то, что MockRepository::InterfaceMock
сделал по-моему. Есть ли возможность построить издевательские объекты с текущей версией?
Обоснование того, что я не принимаю версию 3.1: Мне нужен также очень полезный ExpectCallFunc для тестирования функций, которые не относятся к классам, которые были введены позже.
Обоснование нецелевого использования нового места размещения: новое место размещения создало бы объект после того, как он был посмеян с помощью Hippomocks, таким образом, «сбросив» таблицу виртуальных функций, ранее измененную Hippomocks.
Текущая версия Hippomocks не содержит никакого метода 'MemberMock'. Он содержит 'MockRepository :: Member', синтаксис которого мне не удается расшифровать, особенно параметр шаблона' class B' в 'template void Member (A * mck, CB :: * член) '. –
В соответствии с чистой TDD я полностью согласен, но я использую стороннее программное обеспечение, которое я не смогу изменить в ближайшей перспективе. –
Ааа ... этот синтаксис немного запутан. Первый аргумент - это объект, второй - адрес члена. A - ваш класс, C - класс члена, а B - фактический класс владельца C (который может отличаться от A, и указывается по-разному, чтобы мы могли затем преобразовать указатель, чтобы получить надлежащее смещение базы). Вы должны иметь возможность указать 'Member (obj, & Class :: iValue);' для его инициализации. После этого он полностью инициализируется и может использоваться, поэтому вы сможете просто назначить его после. – dascandy