Catch のジェネレーター部分を使用して、関数が取る bool のさまざまな組み合わせをすべて自動的に調べることができます。
TEST_CASE("where is my sandwich", "[hunger][food]")
{
bool wantLettuce = GENERATE(Values(false, true));
bool wantTomato = GENERATE(Values(false, true));
bool wantBacon = GENERATE(Values(false, true));
bool wantCheese = GENERATE(Values(false, true));
bool wantEgg = GENERATE(Values(false, true));
CHECK(sandwichAssembler(wantLettuce, wantTomato, wantBacon, wantCheese, wantEgg));
}
IIRC これにより、すべての組み合わせを試行して Catch が 2^5 回実行されます。
...しかし、あなたがやりたいことは、すべての組み合わせを実行することだけだと思います。それぞれのケースで出力が何らかの期待を満たしていることを実際に検証したい場合は、さらに多くのことを行う必要があります。
(私はこれをテストしていません - バルセロナのカフェでサンドイッチを待っている間の記憶から思い出す)