我已将 googletest 集成到我们的 MFC 应用程序中。但是,在编写涉及 COleDateTime 对象的测试时,我遇到了以下警告:
1>gtest/gtest-printers.h(169) : warning C4244: 'initializing' : conversion from 'DATE' to 'const testing::internal::BiggestInt', possible loss of data
1>gtest/gtest-printers.h(168) : while compiling class template member function 'void testing::internal2::TypeWithoutFormatter<T,kTypeKind>::PrintValue(const T &,std::ostream *)'
测试如下:
TEST(FunctionTest, SumDays)
{
COleDateTime res = SumDays(COleDateTime(2010,10,31,0,0,0), 1);
EXPECT_EQ(COleDateTime(2010,11,01,0,0,0), res);
}
问题是我无法添加 << 运算符或 PrintTo 方法作为文档宣布。分配更多测试将涉及日期值,因此我想避免文档引用的内联解决方案。
是否有一个很好的解决方案来控制 COleDateTime 值的打印字符串?
当前输出如下:
<failure message="Value of: res
 Actual: 40512
Expected: COleDateTime(2010,10,30,0,0,0)
Which is: 40481" type=""><![CDATA[.\Code.cpp:6837
Value of: res
Actual: 40512
Expected: COleDateTime(2010,10,30,0,0,0)
Which is: 40481]]></failure>
注意实际值!