用于测试函数phpunit的测试用例

时间:2015-03-04 07:09:59

标签: php unit-testing phpunit

我是php单元测试的新手,以下功能的有效测试用例是什么。

 protected function validateParams($graph, $start, $destination)
{
    if (!is_object($graph)) {

        throw new \InvalidArgumentException('Graph param should be an object !');
    }

    if (empty($start)) {

        throw new \InvalidArgumentException('Start param is empty !');
    }

    if (empty($destination)) {

        throw new \InvalidArgumentException('Graph param is empty !');
    }

    return true;
}

1 个答案:

答案 0 :(得分:1)

首先,测试当向方法传递正确的参数时,它返回true

public function testParamsValidation();

然后检查当任何参数为空时抛出InvalidArgumentException。请注意,您应该有3个测试,每个参数对应一个参数。在每个测试中,您只传递一个空参数。您可能希望使用不同的参数值(如null,false,标量等)多次执行这些测试。请使用dataProviders

public function testInvalidArgumentExceptionIsThrownWhenGraphIsNotAnObject(;

public function testInvalidArgumentExceptionIsThrownWhenStartIsEmpty();

public function testInvalidArgumentExceptionIsThrownWhenDestinationIsEmpty();

附注:您可能希望在方法定义中显式化所需的对象类。 $ graph对象应该是某个类还是实现某个接口?