Phpunit,一种测试-一种方法?
一次测试必须涵盖一种方法,这是必须的吗?例如:Phpunit,一种测试-一种方法?,php,phpunit,Php,Phpunit,一次测试必须涵盖一种方法,这是必须的吗?例如: class Testme() { public function testMe ($a) { if ($a == 1) { throw new Exception ('YAY'); } else { return true; } } } 也许这不是一个“真正”的问题。它可以通过以下
class Testme()
{
public function testMe ($a)
{
if ($a == 1)
{
throw new Exception ('YAY');
}
else
{
return true;
}
}
}
也许这不是一个“真正”的问题。它可以通过以下方式进行测试:
/**
* @expectedException Exception
*/
public function test1()
{
new Testme()->testMe (1)
}
public function test2()
{
$this->assertTrue (new Testme()->testMe (2));
}
但是可以将其放在一个方法中(在这种情况下,测试异常有点困难)。好办法是什么?一种方法必须在一种测试方法中,或者在4种独立测试方法(< P>)中测试一种方法是否可行,而不是考虑类的测试/方法,您应该将其视为类每一种预期行为的一种测试。在您的示例中,应该发生两种不同的情况
测试有助于指定代码应该做什么,而不是代码应该是什么样子。一个方法可能会导致不同的事情发生,这取决于它运行的参数。单元测试的整个要点是孤立地测试单元/方法,以消除任何依赖性。。。。因此,在单个单元测试中测试多个方法违反了这一原则。。。。这并不排除对单个方法运行多个测试,以测试该方法中代码的不同路径;通常情况下,应独立测试异常