在进行单元测试时,是否应该边缘案例测试相同的方法,每个都需要单独的测试方法。例如,测试传递给以下函数的空字符串:
public function add($numbers)
{
$numbers = preg_replace('/\s/', '', $numbers);
if ($numbers === "") {
return 0;
}
}
我显然想捕捉边缘情况,例如:
""
" "
"\t \n"
"asd"
ETC
那么需要多少测试方法来证明这种方法有效呢?
public function testAddEmptyString()
{
$stringCalculator = new StringCalculator();
$this->assertSame(0, $stringCalculator->add(""));
}
public function testAddEmptyStringWithSpaces()
{
$stringCalculator = new StringCalculator();
$this->assertSame(0, $stringCalculator->add(" "));
}
public function testAddEmptyStringWithCharacters()
{
$stringCalculator = new StringCalculator();
$this->assertSame(0, $stringCalculator->add("asd"));
}
这似乎测试类将包含大量的方法来处理任何不平凡的事情