MFC アプリケーションに googletest を統合しました。ただし、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>
実際の値に注意してください。