Assert 如何在CppUnitTest框架中断言两个向量是否相等

Assert 如何在CppUnitTest框架中断言两个向量是否相等,assert,stdvector,microsoft-cpp-unit-test,Assert,Stdvector,Microsoft Cpp Unit Test,我试图断言二维向量,如下所示 TEST_METHOD(TestCase1) { std::vector<int> arr{2}; int sum{ 2 }; std::vector<std::vector<int>> subsets; std::vector<std::vector<int>> expected{ {2} }; generate_subsets(subsets, arr, sum)

我试图断言二维向量,如下所示

TEST_METHOD(TestCase1)
{
    std::vector<int> arr{2};
    int sum{ 2 };
    std::vector<std::vector<int>> subsets;
    std::vector<std::vector<int>> expected{ {2} };
    generate_subsets(subsets, arr, sum);
    Assert::AreEqual<std::vector<std::vector<int>>>(subsets, expected);
}
TEST\u方法(TestCase1)
{
std::向量arr{2};
整数和{2};
std::向量子集;
std::向量应为{2};
生成_子集(子集、arr、sum);
Assert::AreEqual(预期为子集);
}
但它显示了一个错误,如下所示

Error - C2338 Test writer must define specialization of ToString<const Q& q> for your class class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > __cdecl Microsoft::VisualStudio::CppUnitTestFramework::ToString<class std::vector<class std::vector<int,class…

错误-C2338测试编写器必须为您的类定义ToString的专门化类std::basic_string\uuu cdecl Microsoft::VisualStudio::CpUnitTestFramework::ToString
断言::AreeEqual
要将值转换为
std::wstring
,以便在出现故障时显示,即:

Assert failed. Expected:<some value> Actual:<some other value>
如果要经常比较这些类型,并希望在测试失败时显示实际值,则可以按照编译消息的建议执行,并为特定类型创建一个
ToString
覆盖:

#包括
名称空间Microsoft{
命名空间VisualStudio{
命名空间cppuntestframework{
模板静态内联std::wstring ToString(const std::vector&object)
{
//在此处插入一些代码以转换为wstring
返回std::wstring();
}
}
}
}

Assert::AreEqual
希望将值转换为
std::wstring
,以便在出现故障时显示,即:

Assert failed. Expected:<some value> Actual:<some other value>
如果要经常比较这些类型,并希望在测试失败时显示实际值,则可以按照编译消息的建议执行,并为特定类型创建一个
ToString
覆盖:

#包括
名称空间Microsoft{
命名空间VisualStudio{
命名空间cppuntestframework{
模板静态内联std::wstring ToString(const std::vector&object)
{
//在此处插入一些代码以转换为wstring
返回std::wstring();
}
}
}
}