使用 Visual Studio 2012 本机单元测试,使用共享指针时无法编译代码。
我的代码:
#include "stdafx.h"
#include "CppUnitTest.h"
#include "ParameterTest.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace MyParameter;
namespace MyParameterTests
{
TEST_CLASS(MyParameterTests)
{
public:
TEST_METHOD(CheckParametersWithPathReturnsNotNull)
{
//Arrange
Parameter parameter = Parameter();
//Act
std::shared_ptr<std::string> actual = parameter.CheckParameters("C:\\Parameter.db");
//Assert
Assert::IsNotNull(actual, L"Should not return null", LINE_INFO());
}
};
}
编译器错误:
2>------ 重建所有开始:项目:MyParameterTests,配置:Debug Win32 ------ 2> stdafx.cpp 2> ParameterTestTests.cpp 2>c:\users\\documents\visual studio 2012\ projects\myparametertests\parametertests.cpp(26): error C2784: 'void Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsNotNull(const T *,const wchar_t *,const Microsoft::VisualStudio::CppUnitTestFramework::__LineInfo * )' : 无法从 'std::shared_ptr<_Ty>' 2> 中推导出 'const T *' 的模板参数 2> [ 2> _Ty=std::string 2> ] 2> c:\program files (x86 )\microsoft visual studio 11.0\vc\unittest\include\cppunittestassert.h(259) :参见“Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsNotNull”的声明