这真的很不方便。
看看uninteresting call function report 的来源,似乎无法修改此行为。对方法调用的可能反应由固定的 enum给出,因此扩展在这里看起来不像是一个选项。您可以将 Google Test 事件侦听器附加到测试套件,但我认为到达这些侦听器的信息同样有限。
在我看来,如果这对我来说真的很重要,我会修改 Google Mock 源代码中提到的行,并连同方法名称一起放置对象地址(这是最接近的东西和标识符)与MockObject()
. 就像是:
// Writes a message that the call is uninteresting (i.e. neither
// explicitly expected nor explicitly unexpected) to the given
// ostream.
virtual void UntypedDescribeUninterestingCall(
const void* untyped_args,
::std::ostream* os) const
GTEST_LOCK_EXCLUDED_(g_gmock_mutex) {
const ArgumentTuple& args =
*static_cast<const ArgumentTuple*>(untyped_args);
*os << "Uninteresting mock function call - ";
DescribeDefaultActionTo(args, os);
*os << " Function call: " << Name();
*os << "Mock object address: " << MockObject();
UniversalPrint(args, os);
}
这并不像看起来那么疯狂。Google Mock 是一个测试库,而不是生产库,因此自定义(受控)修改在那里并没有那么有害。实际上,Google 确实建议为每个不同的项目使用自定义的 Google Test 编译。
或者您可以将补丁发送给他们,看看他们是否喜欢它:)