【发布时间】:2012-04-17 11:31:51
【问题描述】:
我正在执行测试作为我的单元测试项目的一部分。 我想知道是否有任何方法可以使以下调用失败:
CoCreateInstance 初始化安全 CoSetProxyBlanket WMI 调用
我想以管理员用户身份执行此操作,但无法访问任何代码,例如停止任何服务或删除任何 dll
我必须这样做以增加负代码覆盖率。
谁能帮帮我:)
非常感谢:)
【问题讨论】:
标签: c++ unit-testing com wmi
我正在执行测试作为我的单元测试项目的一部分。 我想知道是否有任何方法可以使以下调用失败:
CoCreateInstance 初始化安全 CoSetProxyBlanket WMI 调用
我想以管理员用户身份执行此操作,但无法访问任何代码,例如停止任何服务或删除任何 dll
我必须这样做以增加负代码覆盖率。
谁能帮帮我:)
非常感谢:)
【问题讨论】:
标签: c++ unit-testing com wmi
CoCreateInstance: 修改注册表很容易失败。例如,如果您正在初始化 WMI 类,请在注册表中找到该类并重命名其键和值。请务必先进行备份。
CoInitializeSecurity:我还没有尝试过,但我很确定您可以使用权限较低的用户使其失败。例如,没有管理员权限的用户将无法获得硬盘序列号。
CoSetProxyBlanket: 再说一次,我认为你可以让一个特权较低的用户失败。但我不确定这个。
【讨论】:
只需连续调用两次CoInitializeSecurity 即可轻松失败。第二次调用将失败,返回 0x80010119 (RPC_E_TOO_LATE)。
【讨论】: