c - 在对共享库进行单元测试时,如何用模拟实现替换函数?
问题描述
我遇到了相反的问题,即使它是由使用 -rdynamic 编译的程序加载的,您能否将共享对象编译为更喜欢本地符号?正在解决。
使用链接问题中的命名,我有一个baz
调用的动态库bar
,并且我有一个运行该库的测试二进制文件,它代替了它自己的假实现来bar
进行测试。这在 Linux 上运行良好,因为-rdynamic
用于链接。
测试的来源是https://github.com/apache/qpid-dispatch/blob/b172f501028b36d786b4c83bcee1e195cd17fcf2/tests/timer_test.c。除其他外,被模拟的函数是qd_server_timeout
和qd_timer_now
(即内联函数,请参阅评论)。
我不知道如何在 macOS 上实现相同的目标。那里有哪些正确的链接器选项?
解决方案
推荐阅读
- mongodb - 如何在 mongodb 或任何其他规则引擎中使用 Drools 决策树
- postmates - Postmates 跟踪 URL 错误 - 具有有限坐标的 LatLng 或 LatLngLiteral:在属性 lat:NaN 不是可接受的值
- c# - JSON 反序列化在 Web API 中不起作用
- javascript - 一个 html 元素正在路由到开发服务器的链接
- python - 使用 Python selenium Select() 函数时元素不可交互异常
- python - 如何摆脱 tensorflow 类的问题?
- android - 当我在一段时间后尝试恢复时,我的应用程序正在关闭
- android - Android studio - 如何用动画创建曲线
- arrays - 在java脚本中访问数组元素的问题
- java - 关键字的过滤字符串