C++ の単体テスト コードで、2 つのベクトルを比較する必要がある場合、一時的なベクトルを作成して期待値を格納します。
std::vector<int> expected({5,2,3, 15});
EXPECT_TRUE(Util::sameTwoVectors(result, expected));
1行にしていいですか?Pythonでは、「[...]」でリストを生成できます。
sameTwoVectors(members, [5,2,3,15])
C++ の単体テスト コードで、2 つのベクトルを比較する必要がある場合、一時的なベクトルを作成して期待値を格納します。
std::vector<int> expected({5,2,3, 15});
EXPECT_TRUE(Util::sameTwoVectors(result, expected));
1行にしていいですか?Pythonでは、「[...]」でリストを生成できます。
sameTwoVectors(members, [5,2,3,15])
を受け取る初期化子リスト コンストラクターが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}));
}
オプションでsameTwoVectors
、単純な比較のみを行う場合は、それを削除できます。を呼び出すときに、代わりに比較式を使用するだけですEXPECT_TRUE
。トレードオフはstd::vector<int>
、暗黙的な変換コンストラクターに依存するのではなく、明示的に指定する必要があることです。数文字少なく、予想される結果が少し明確になります。
EXPECT_TRUE(result == std::vector<int>({5,2,3,15}));
Util::sameTwoVectors
const 参照または単なる値を期待する場合( C++11のサポートを前提として) そのように記述します
EXPECT_TRUE(Util::sameTwoVectors(result, std::vector<int>{5, 2, 3, 15}));