我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试。
这是我的测试:
TEST_METHOD(CalculationsRoundTests)
{
int result = Calculations::Round(1.0);
Assert::AreEqual(1, result);
}
导出类:
#ifdef EXPORT_TEST_FUNCTIONS
#define MY_CALCULATIONS_EXPORT __declspec(dllexport)
#else
#define MY_CALCULATIONS_EXPORT
#endif
...
class CALCULATIONS_EXPORT Calculations {
...
public:
static int Round(const double& x);
函数本身:
int Calculations::Round(const double& x)
{
int temp;
if (floor(x) + 0.5 > x)
temp = floor(x);
else
temp = ceil(x);
return int(temp);
}
但是,测试几乎总是以错误代码 c0000005(访问冲突)失败。第一次使用 x 或可能在函数中声明的任何其他变量时,测试将失败。
在为 Visual C++ 2012 编译单元测试时,我遵循了 Unresolved externals 中的说明