php - 如何使用 PHPUnit 测试构造函数的正确调用
问题描述
使用 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"];
}
}
这与如何对构造函数带有一些参数的类的方法进行单元测试中描述的情况不同?,因为我的测试类正在实例化第二类。
解决方案
除了 1) 验证传递给它的数据并在数据被拒绝时异常中止对象构造和 2) 将传递给它的数据分配给属性之外,构造函数不应做任何其他工作。因此,关于对象构造唯一可以而且应该测试的是无效数据被拒绝并且不会导致构造违反类契约的对象。
推荐阅读
- swift - 具有预编译依赖项的 Swift 包
- python - 将导入的函数连接到没有依赖关系的 Qt5 进度条
- android - 如何在不打开键盘的情况下突出显示 textinputlayout
- shell - 根据分支类型列出分支名称
- ruby-on-rails - Rails redis-server 抛出 maxmemory 错误。Redis::CommandError(使用内存>'maxmemory'时不允许使用OOM命令。):
- slack - 如何在所有直接消息渠道中发布临时消息?
- python - 在 Tensorflow 对象检测中评估预训练模型时出错 (tensorflow.python.framework.errors_impl.NotFoundError:)
- html - 如何将一个垂直图像与块中的另外 2 个垂直图像对齐
- c# - 如果特定端点发生错误,则不记录有效负载
- java - 如何使用 Gradle 推送到 Github 包注册表