【问题标题】:How to test correct call of constructor with PHPUnit如何使用 PHPUnit 测试构造函数的正确调用
【发布时间】:2020-04-18 22:53:48
【问题描述】:

使用 PHPUnit,我如何正确测试构造函数(对于下面简化示例中的 Built 类)是否被正确调用? Container 类是被测试的类。我希望能够在下面的数组键中捕捉到诸如故意错字之类的东西。不可能模拟构造函数,否则这将是直截了当的。

class Container {
    public function create(string $input) {
        $request = new Built(["rid" => $input]); // Oops, typo in keyname.
    }
}
class Built {
    private $tid;
    public function __construct(array $params) {
        $this->tid = $params["tid"];
    }
}

这与How to unit test the methods of a class whose constructor take some arguments? 中描述的情况不同,因为我的测试类正在实例化第二个类。

【问题讨论】:

标签: php phpunit


【解决方案1】:

除了 1) 验证传递给它的数据并在数据被拒绝时异常中止对象构造和 2) 将传递给它的数据分配给属性之外,构造函数不应做任何其他工作。因此,关于对象构造唯一可以并且应该测试的是无效数据被拒绝并且不会导致构造违反类契约的对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多