Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 微软C++;即使值相同,本机测试也会失败Assert::AreName_C++_Unit Testing - Fatal编程技术网

C++ 微软C++;即使值相同,本机测试也会失败Assert::AreName

C++ 微软C++;即使值相同,本机测试也会失败Assert::AreName,c++,unit-testing,C++,Unit Testing,我正在使用microsoft本机单元测试框架(vs2019附带)运行测试,测试失败,并显示以下消息:Assert failed。预期值:实际值: 以下是测试代码: 测试方法(内存拷贝) { int-ref[10]={1,2,3,4,5,6,7,8,9,10}; int src[10]={1,2,3,4,5,6,7,8,9,10}; 国际目的地[10]; 测试:内存拷贝(src,dest,10); for(无符号整数i=0;i

我正在使用microsoft本机单元测试框架(vs2019附带)运行测试,测试失败,并显示以下消息:
Assert failed。预期值:实际值:

以下是测试代码:

测试方法(内存拷贝)
{
int-ref[10]={1,2,3,4,5,6,7,8,9,10};
int src[10]={1,2,3,4,5,6,7,8,9,10};
国际目的地[10];
测试:内存拷贝(src,dest,10);
for(无符号整数i=0;i<10;i++)
{
Assert::AreName(src[i],ref[i]);
断言::AreName(dest[i],ref[i]);
}
};
注意:
memory\u copy()
将内存从一个指针复制到另一个指针,就像
std::memcpy()


有人知道这里的问题是什么吗?

事实证明,
断言::AreName()
没有达到我预期的效果。通过将其更改为
Assert::AreEqual()
,我已经解决了这个问题。更多信息请点击此处:


事实证明,
断言::AreName()
并没有达到我预期的效果。通过将其更改为
Assert::AreEqual()
,我已经解决了这个问题。更多信息请点击此处:

检查输入是否指向相同的对象;它不会比较这些值

该功能的实现(来自
cppunitestassert.h
)如下所示:

template<typename T> static void AreSame(const T& expected, const T& actual, const wchar_t* message = NULL, const __LineInfo* pLineInfo = NULL)
{
    FailOnCondition(&expected == &actual, EQUALS_MESSAGE(expected, actual, message), pLineInfo);
}
检查输入是否引用相同的对象;它不会比较这些值

该功能的实现(来自
cppunitestassert.h
)如下所示:

template<typename T> static void AreSame(const T& expected, const T& actual, const wchar_t* message = NULL, const __LineInfo* pLineInfo = NULL)
{
    FailOnCondition(&expected == &actual, EQUALS_MESSAGE(expected, actual, message), pLineInfo);
}

向我们展示
test::memory\u copy
实现,如果没有它,我们将无能为力。我已经确认test::memory\u copy是有效的。我也发现了这个问题。我马上就要发布答案了。我相信
arame
检查的是内存地址,而不是值
AreEqual
可能是您想要的。向我们展示
test::memory\u copy
实现,没有它,我们就无能为力。我已经确认test::memory\u copy可以工作。我也发现了这个问题。我马上就要发布答案了。我相信
arame
检查的是内存地址,而不是值
AreEqual
可能是您想要的。虽然我们感谢您的回答,但如果它在其他答案的基础上提供附加值,那就更好了。在这种情况下,您的答案不会提供额外的价值,因为另一个用户已经发布了该解决方案。如果以前的答案对你有帮助,你应该投票表决,而不是重复相同的信息。这个答案在我已经投票并选择作为答案的答案之前发布。啊,对不起,我应该检查时间戳。尽管我们感谢你的回答,如果它能在其他答案的基础上提供额外的价值,那就更好了。在这种情况下,您的答案不会提供额外的价值,因为另一个用户已经发布了该解决方案。如果以前的答案对你有帮助,你应该投票支持它,而不是重复相同的信息。这个答案在我已经投票并选择作为答案的答案之前发布。啊,对不起-我应该检查时间戳。这真的是
Areame
的完整实现吗?这可以通过重载
操作符&
来实现。它应该改为使用
std::addressof
。@walnut,是的。
AreEqual
有几个重载,但是
Areame
只有一个重载。我很惊讶它没有使用
addressof
这真的是
arame
的完整实现吗?这可以通过重载
操作符&
来实现。它应该改为使用
std::addressof
。@walnut,是的。
AreEqual
有几个重载,但是
Areame
只有一个重载。我很惊讶它没有使用
addressof