如何检查std :: unique_ptr <int []>中的元素?

时间:2019-03-08 22:00:59

标签: c++ c++11 gmock

我有一个返回str的函数,我想在单元测试中检查它是否返回正确的元素。看起来像下面的代码不起作用:

std::unique_ptr<int[]>

我也曾尝试在断言中将std::vector<int> foo = {1, 2, 3}; std::unique_ptr<int[]> bar = my_func(); EXPECT_THAT(bar, ElementsAreArray(foo)) 替换为bar,但仍然遇到奇怪的类型错误。

1 个答案:

答案 0 :(得分:1)

2.7将返回指向bar.get()所指的同一内存的原始(无所有权)指针。您想要的是取消引用unique_ptr以返回基础整数数组。

即使如此,您的unique_ptr也不会成功,因为它将尝试将其参数与EXPECT_THAT等同,operator==int[]将无法使用它除非您定义它。另外,您可以将vector<int>行放在一个循环中并遍历两个容器。