【发布时间】:2020-02-07 16:37:24
【问题描述】:
我正在使用 Visual Studio 的 cpp 单元测试框架实现一些单元测试。我希望能够在测试中比较枚举,但总是会出现错误。
这是导致我出错的代码。
ClauseEntities ent1 = varMap.at("a");
ClauseEntities ent2 = varMap.at("v");
Assert::AreEqual(ent1, ASSIGN_STATEMENT);
Assert::AreEqual(ent1, VARIABLE);
ent1 是一个枚举状态,而 ASSIGN_STATEMENT 也是来自同一枚举的一个枚举状态。
Severity Code Description Project File Line Suppression State
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<enum ClauseEntities>
(const enum ClauseEntities &).
UnitTesting C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\VS\UnitTest\include\CppUnitTestAssert.h 66
不确定我应该如何为枚举字符串创建模板特化..
【问题讨论】:
-
我无法相信isn't even covered in Microsoft's own tutorial 设置其单元测试框架。我遇到了同样的问题。
标签: c++ visual-studio enums microsoft-cpp-unit-test