gpt4 book ai didi

PHPUnit 如何测试一个方法是否有正确数量的参数?

转载 作者:行者123 更新时间:2023-12-01 22:32:15 25 4
gpt4 key购买 nike

在开始向我开枪之前,我只是想知道我是单元测试方面的新手,所以我什至不知道我在这里发布的问题是否有可能实现。

所以,我喜欢做的是测试一个类的构造函数方法是否获得了一定数量的参数。我该怎么做?

我的基础类(class)如下:

class Time {

public function __construct() {

}

}

我的测试如下:

require dirname(dirname(__FILE__)) . "/time.php";
require dirname(dirname(__FILE__)) . "/vendor/autoload.php";

class TimeTests extends PHPUnit_Framework_TestCase {

protected $classInstance;

protected function setUp()
{
$this->classInstance = new Time();
}

public function testConstructorExists() {

$this->assertTrue ( method_exists( $this->classInstance , '__construct' ), 'Constructor method does not exists' );

}

}

目前第一个测试正常,但我不知道如何测试构造函数参数。

对于这个构造函数,我喜欢有三个整数参数,那么,我怎样才能正确测试参数是否存在?

我想到的一个可能的解决方案是在构造函数中使用 Throw Exception,但我还是不知道这是否正确。

有什么帮助吗? :)

最佳答案

您可以使用 PHP 反射来执行此操作:

$class = new ReflectionClass('ReflectionClass');
$constructor = $class->getConstructor();
$numberOfParams = $constructor->getNumberOfRequiredParameters();

您可以查看 PHP 文档: http://php.net/manual/en/reflectionclass.getconstructor.php http://php.net/manual/en/reflectionfunctionabstract.getnumberofrequiredparameters.php

关于PHPUnit 如何测试一个方法是否有正确数量的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29118986/

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