pro*_*eek 6 c++ python containers unit-testing
在C++中的单元测试代码中,当我需要比较两个向量时,我创建临时向量来存储期望值.
std::vector<int> expected({5,2,3, 15});
EXPECT_TRUE(Util::sameTwoVectors(result, expected));
Run Code Online (Sandbox Code Playgroud)
我可以一行吗?在python中,我可以生成一个带有"[...]"的列表.
sameTwoVectors(members, [5,2,3,15])
Run Code Online (Sandbox Code Playgroud)
由于std::vector
包含一个初始化列表构造函数,std::initializer_list
您可以使用统一的初始化语法,只要该sameTwoVectors
函数按值、右值引用或const
引用接受向量即可。
namespace Util
{
bool sameTwoVectors(
const std::vector<int>& result,
const std::vector<int>& expected)
{
return result == expected;
}
}
int main()
{
std::vector<int> result;
EXPECT_TRUE(Util::sameTwoVectors(result, {5,2,3,15}));
}
Run Code Online (Sandbox Code Playgroud)
或者,如果sameTwoVectors
只进行简单的比较,您就可以消除它。当您调用 时,只需在其位置使用比较表达式即可EXPECT_TRUE
。权衡是您必须std::vector<int>
显式指定而不是依赖隐式转换构造函数。少了几个字符,并且更清楚预期的结果是什么。
EXPECT_TRUE(result == std::vector<int>({5,2,3,15}));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
137 次 |
最近记录: |