【发布时间】:2021-03-25 01:13:50
【问题描述】:
我创建了一个小型库,需要用户设置一个秘密常量才能使其工作。
这是我的代码的一部分:
if (!defined('SOMELIB_SECRET')) {
throw new RuntimeException('You need to define the constant SOMELIB_SECRET to use this library');
}
这段代码很好用,但我不知道如何测试异常抛出。如果我在 phpunit.xml 中创建常量,我可以测试所有内容:
<php>
<const name="SOMELIB_SECRET" value="ThisIsTheSecretForTests" />
</php>
如果我不在 PHP 中添加常量,我可以测试异常。
我想要做的是测试两者,我需要一种方法来中途取消设置常量,这并不是真正的事情(结果常量是......常量)。
我尝试创建 2 个测试文件:001_SomeLibWithoutSecretTest.php 和 002_SomeLibWithSecretTest.php,以便我可以在它们之间创建常量。它在 Linux 上工作,但现在我使用的是 Windows,测试被称为相反的方式。此外,它有点hacky:tests should not have to be called in a given order。
在所有这些介绍之后,这是我的简单问题:
如何使用 PHPUnit 运行测试,为某些测试定义常量,但不是为所有测试定义常量?
【问题讨论】: