gpt4 book ai didi

Phpunit,一个测试 - 一种方法?

转载 作者:行者123 更新时间:2023-12-04 14:33:17 24 4
gpt4 key购买 nike

一个测试必须覆盖一种方法是必须的吗?例如:

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个独立测试方法中测试一个方法是否可以?

最佳答案

与其考虑类的测试/方法,不如将其视为针对类的预期行为的一项测试。在您的示例中,您有两件不同的事情应该发生

  1. 如果参数为1,则抛出异常
  2. 对其他值返回真

所以您需要这两个测试,因为应该发生两种不同的事情。

您的测试有助于指定您的代码应该DO 的内容,而不是您的代码应该看起来的样子。一个方法可能会导致不同的事情发生,这取决于它运行的参数撤消。

关于Phpunit,一个测试 - 一种方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28661399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com