Как делают меня фиктивные объекты без наследования (в C)?

Вы можете тестировать (утверждать) статические методы, но вы не можете насмехаться над ними или заглушки в PHPunit.

Из документации :

Обратите внимание, что заключительный, закрытый и статический методы не могут быть заглушены или опровергнуты. Они игнорируются тестовой двойной функциональностью PHPUnit и сохраняют свое первоначальное поведение, за исключением статических методов, которые будут заменены методом, выдавшим \PHPUnit\Framework\MockObject\BadMethodCallException exception.

BLOCKQUOTE>

6
задан David Holm 31 October 2008 в 11:12
поделиться

4 ответа

Можно использовать макрос для переопределения tcp_socket_send кому: tcp_socket_send_moc и ссылка с реальным tcp_socket_send и фиктивная реализация для tcp_socket_send_moc.
необходимо будет тщательно выбрать надлежащее место для:

#define tcp_socket_send tcp_socket_send_moc
3
ответ дан 17 December 2019 в 02:35
поделиться

Что ОС Вы используете? Я полагаю, что Вы могли сделать переопределение с LD_PRELOAD на GNU/Linux: Этот слайд выглядит полезным.

0
ответ дан 17 December 2019 в 02:35
поделиться

Не уверенный, чего Вы хотите достигнуть.

Можно добавить все функции foo_* как участники указателя функции к struct Foo_s но все еще необходимо явно передать указатель на объект, поскольку там не неявно this в C. Но это даст Вам инкапсуляцию и полиморфизм.

0
ответ дан 17 December 2019 в 02:35
поделиться

Взгляните на TestDept: http://code.google.com/p/test-dept/

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

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

2
ответ дан 17 December 2019 в 02:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: