在C ++中,不好的做法是在某些函数中创建代码块,例如:
bool f()
{
{
double test = 0;
test = // some other variable outside this function, for example.
if (test == // some value)
return true;
}
{
double test = 0;
test = // some variable outside this function, different from the last one.
if (test == // some value)
return true;
}
return false;
}
这样做的目的是针对同一类型的过程多次使用相同的变量名称“ test”。在实际的项目中,我有多个变量并且正在执行多个测试。考虑到测试是如此相似,我真的不想继续为每个测试创建具有不同名称的新变量。
插入代码块以使变量在每次测试后超出范围,然后我可以再次使用它们的名称,这是不好的做法吗?还是我应该寻求其他解决方案?应该注意的是,我考虑对所有测试使用相同的变量集(并在每次测试结束后将它们全部设置为0),但是我觉得这可能是不好的做法。
19
如果我正在接受这段代码,我会告诉您将这些测试中的每一个分成单独的方法...因此,您不需要使用代码块来分别定义它们的范围。
—
Maybe_Factor
@Maybe_Factor-我同意。单独方法的好处是,您可以命名每个块,从而提供更具可读性的代码。
—
mouviciel
@mouviciel不仅可读性强的代码,而且可读性强的测试报告!
—
Maybe_Factor
@Maybe_Factor我不同意。将事物移动到单独的函数中会带来负面影响,使它们看起来像是很少可重用的功能。将功能的所有逻辑都放在一个地方是好的。
—
Miles Rout
@MilesRout这不是一个逻辑功能,这是一个功能的多个单元测试,所有这些功能都挤在一个测试功能中。普通代码中的代码块与功能完全是另一个讨论。
—
Maybe_Factor