在VS 2012中编译单元测试时出错

时间:2014-07-06 11:51:30

标签: c++ unit-testing visual-studio-2012 microsoft-cpp-unit-test

我在VS 2012中定义了单元测试,由于错误C2338而无法编译。

  

错误C2338:测试编写者必须为您的类类std :: basic_string定义ToString的特化,类std :: allocator> __cdecl   Microsoft :: VisualStudio :: CppUnitTestFramework :: ToString(const struct CoreUnitTests :: TestStruct   &安培)。 c:\ program files(x86)\ microsoft visual studio   11.0 \ VC \单元测试\包括\ cppunittestassert.h

Assert :: AreEqual测试时会发生这种情况。我需要为类型定义一个ToString方法。

我遵循了cppunittestassert.h中给出的指导,并在互联网上找到了我已经放入的解决方案。但是错误仍在发生。

以下是我正在使用的代码示例:

struct TestStruct
{
public:
    float f;
    int i;

    bool operator == (const TestStruct& rhs) const
    {
        return (f == rhs.f) && (i == rhs.i);
    }
};

namespace Microsoft
{ 
    namespace VisualStudio
    { 
        namespace CppUnitTestFramework
        {
        template<> 
        static std::wstring ToString<TestStruct>(const TestStruct& t)
        { 
            std::wstringstream stream;
            stream << "TestStruct";
            return stream.str();
        }
        }
    }
}

我显然还在做错事。有人有主意吗。我已经尝试添加TestStruct *版本,但没有帮助。

我怀疑它可能与名称空间有关,但我不确定如何解决这个问题。

由于

0 个答案:

没有答案